现在,许多单位都在建设自己的局域网以实现资源共享,其中文件共享是一个重要方面。
当前有许多网络操作系统可供我们选择,相对而言,选择Linux做为网络操作系统具有比
较好的性能价格比。Linux提供的Web服务、邮件服务、数据库服务、文件共享服务基本
能够胜任大多数单位的应用需求。本文主要阐述如何利用Linux的Samba服务模拟NT域实
现局域网的文件资源共享。
Samba是一个与Windows
NT具有相同协议的软件包。我们可以利用Samba服务来模拟Windows NT域,使用户从Window
计算机上直接使用一台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_MACHINESystemCurrent-ControlSetServicesVxDVNETSETUP中,添加
一项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纳入你的选择范围。