Linux 版 (精华区)

发信人: wugang (网络之狼·不学则光), 信区: Linux
标  题: 利用Linux的Samba服务模拟NT域 
发信站: 哈工大紫丁香 (2000年12月28日00:18:43 星期四), 站内信件



现在,许多单位都在建设自己的局域网以实现资源共享,其中文件共享是一个重要
方面。当前有许多网络操作系统可供我们选择,相对而言,选择Linux做为网络操
作系统具有比较好的性能价格比。Linux提供的Web服务、邮件服务、数据库服务、
文件共享服务基本能够胜任大多数单位的应用需求。本文主要阐述如何利用Linux
的Samba服务模拟NT域实现局域网的文件资源共享。 

Samba是一个与Windows 

NT具有相同协议的软件包。我们可以利用Samba服务来模拟Windows NT域,使用户
从Windows计算机上直接使用一台Linux服务器上的文件和打印机。当你正确安装了
Samba软件包后,接下来的工作是正确配置Samba,Samba服务的配置都在
/etc/smb.conf中完成。 


给Samba一个合适的域名 

在Smb.conf文件[Global]一节中,Workgroup项实际上相当于Windows NT的域名,
它的默认设置是Mygroup,我们可以根据单位名称、个人爱好给它一个名字,如
Sambaserver。 


设置允许Windows工作站登录 

同样,在Smb.conf文件[Global]一节中,Domain logons项设置为Yes,表示Samba
服务允许Windows用户登录。 


用户鉴别设置 

经过以上两步设置后,在Windows 95老版本或Lan manager for DOS中,按Linux合
法用户登录,就能够顺利地登录到Samba服务器。可是,在Windows 98中,你会发
现,总是出现一个类似口令不正确的提示,这是什么原因呢?原来Samba服务口令
识别默认的设置是普通文本,而Windows 98和带有SP3以上的Windows NT 4.0、
Windows 2000都是使用加密口令。如何解决这个问题呢?可用以下三种方法。 

表1 

项名称     涵义            可能的值 

comment     共享名注释 

public     该共享资源是否公共许可   yes no

writeable    可以进行写操作       yes no 

valid users   允许的用户,多个用户时,  mary;joke;hxw
        中间用分号隔开 

allow hosts   允许的客户机,多个时,中  hxw;moli;liping或
        间用分号隔开,可以用ip地  11,103,41.*;11.103.42.88
        址表示 

create mask   文件目录建立的强制掩码 

1.强制客户端以明文口令登录 

该方法采用修改Windows系统的注册表关闭口令,加密登录时,以明文传送口令。
在注册表
HKEY_LOCAL_MACHINE\System\Current-ControlSet\Services\VxD\VNETSETUP中,
添加一项EnablePlainTextPassword,值为1(DWORD)。然后,重新启动Windows系统
。 

2.让Samba使用加密口令 

第一种解决办法可行但不实用,如果单位工作站太多,对系统管理员来说,显然是
件麻烦的事情。事实上,现在流行的Linux的Samba版本都能够识别加密口令,只不
过Samba默认的口令识别是普通文本。要使Samba能够识别加密口令,需要做如下几
项工作。更改[Global]一节中的Encrypt password项为Yes,Smb passwd file项指
向一个你建立的Samba密码文本,默认的文本是/etc/smbpasswd。接下来,用
Cat/etc/passwd|mksmbpasswd.sh>/etc/ 

表2 

宏     涵 义 

%u     根据要求共享的用户名提供共享资源

%g     根据要求共享的用户所属组提供共享资源 

%m     根据要求共享的机器名提供共享资源 

smbpasswd的方法建立一个初始的Samba密码文本。然后,为所有Samba用户建立一
个Samba密码口令,如要为Abc用户建立口令,只需键入Smbpasswd abc。 

通过这种办法,你可以完全像登录Windows NT一样使用Linux上的文件资源,客户
端不再需要做额外的工作。 

3.寻求第三方用户认证 

如果在局域网中有一个NT服务器,Samba可以通过NT域的认证许可为客户端提供文
件服务。也就是说,只要是NT域的合法用户,就可以访问Samba上的许可共享资源
。具体配置方法为:把[Global]一节中的Security项设置为Server(Samba默认的
是User),Password Server项指向NT服务器名字,建议使用IP地址。如
Password Server=11.103.41.12。这种办法简捷,但在Samba共享资源设置上需进
行更多的安全设置。因为在Samba服务下的公共许可的资源,只要是NT域的合法用
户,不管是否是Linux用户,都能访问到该资源。 


设置Samba共享资源 

在Samba服务中,共享资源的设置要比Windows NT灵活得多,它除了能像Windows 
NT一样进行用户和工作站许可设置外,Samba还提供一种宏的功能,能够根据请求共
享的机器和用户的情况,动态地分配不同的共享资源,也就是说,使用同一个共享
名,不同的用户组、用户或不同的客户机,会获得不同的共享资源。设置的具体方
法是:在Smb.conf中加入一小节,小节名为共享名,在小节中,Path项是必不可少
的,它用来表示该共享名映射到Linux服务器上的哪个目录。如: 

[myshare]
path=/home/samba 

Myshare是供客户机共享的共享名,/home/samba是该共享资源在服务器上的目录。
 

在共享小节中,可以加入表1中的一些常用的控制项。 

在Path项中,可以充分利用Samba提供的宏功能,常用的宏见表2。 

如下面的Usershare共享资源,就是根据不同用户映射到其相应的用户目录:
   
[usershare]
comment=不同用户共享资源
path=/home/%u
public=yes
writeable=yes
printable=no 

在设置共享资源中,要注意的一个问题就是,如果有Lan manager for DOS工作站
,在共享名中不要用$符号(这在NT域共享名中是常用的),因为在Lan manager for
 DOS工作站要映射一个Samba具有$符号的共享名时,会出现DOS扩展错误。同样,
要在Linux中利用Smbmount、Smclient来引用一个NT域具有$符号的共享名时也会出
现错误。另外要注意的是,Samba是建立在Linux上的一项服务,Linux文件系统的
权限优先于Samba。比如说,如果Samba允许对一个目录写操作,但Linux不允许,
那么客户端还是不能写操作。所以,设置了一个可写的共享却不能进行写操作时,
首先应当考虑Linux文件系统是否是写许可。 


重新启动Samba服务 

每次对Smb.conf做过修改、删除、增加操作,你都必须重新启动Samba服务,才能
使你的改动生效。方法是:/etc/rc.d/init.d/smb restart。 

通过以上五步骤,就可建起一个Linux上的“NT域”。经过长期使用后,笔者感觉
它的稳定性、安全性都相当不错。当你想建一个文件服务器时,不妨把Samba纳入
你的选择范围。 




摘自:http://www.it365.net

[ 关闭窗口 ]



 
 

--
        ·━━━━━━━━━━━━━━━━━━━━━━━━━━━·
        ‖看清楚、看明白、瞧准了,别说我没提醒你。我这个人不出类‖
        ‖拔萃但也不庸庸碌碌,不太玉树临风但也非歪瓜劣枣,不家财‖
        ‖万贯但也不一无所有。有点懒有点馋有点笨,也有点耐心有点‖
        ‖恒心有点信心,也就是说缺点不是没有但优点也有时会闪闪光‖
        ·━━━━━━━━━━━━━━━━━━━━━━━━━━━·                   Go!  天竺  @>>--,--'--- http://beauty.hit.edu.cn 

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.224.64]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.021毫秒