SMB(Server MessageBlock,服务信息块)协议可以看作是局域网上的共享文件/打印机的一种协议,它可以为网络内部的其它Windows和Linux机器提供文件系统、打印服务或是其他一些信息。
作者:网络世界 来源:网络世界 2007年9月14日
关键字: Samba 服务器
2).通过用户口令
使用以下参数来限制通过用户口令访问:
security
参数security可以确定对客户用户名/口令的验证方式。缺省为"user",即对Samba服务器的任何访问都要通过用户名/口令的验证。如果客户登录客户机,如Windows
所用的用户名与Samba服务器上的UNIX用户名一致,则通过口令验证后就可以访问;如Windows
所用的口令也与UNIX一样,那么不经任何提示就可以访问。
但如果客户机上登录的用户名与Samba服务器上的UNIX用户名不一致,则需要在一个映射文件中(如/etc/smbusers)写入客户机用户名到UNIX用户名的映射,同时使用"username
map"参数指定映射文件,例如:
username map = /ect/smbusers
在/etc/smbusers文件中的内容如下:
cuckoo = "cuckoo doo"
这样,在客户机上以"cuckoo
doo"注册后,再与Samba服务器连接时,输入UNIX客户cuckoo的口令就可以进入,因为Samba已经把"cuckoo
doo"映射为cuckoo。
security参数的另一个值是"share",表示Samba服务器不需要客户机使用用户名/口令来登录,而是根据每个共享的设置来决定是否需要用户名/口令验证。设置security为share一般用于客户机上大多数用户名与Samba服务器上UNIX用户名不相同的情况,以及Samba服务器主要提供guest访问。
在smb.conf文件中,如果没有设置"encrypt
passwords",Samba将使用UNIX的password数据库来验证用户口令。这需要客户机将口令以"普通文件"的方式传递过来。如果设置了"encrypt
passwords",Samba则使用另一个加密口令文件,通过"smb passwd file"来设置,例如:
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
3).通过用户名
public
guest ok
上面的两个参数的功能相同,都可以使用相应的服务允许guest用户,即不需要用户名/口令验证。如果还指定了"guest
only",那么相应的服务器只允许由guest用户来访问。
invalid users
valid users
这两个参数分别设置不允许注册某个服务和允许注册某个服务的用户列表。一个用户同时出现在两个列表中的时候,不允许注册优先。列表中的用户名可以用空格隔开,以"@"开头的名字被认为是NIS
组名或UNIX组名;以"+"开头的名字被认为是UNIX组名;以"&"开头的名字只被认为是NIS组名。
only user
此参数控制是否只允许在"user ="列表中指定的用户访问某个服务。如果设置为true,则只有在"user ="列表中的用户才能访问。
4).通过是否可以读写来控制
read only
此参数设置为"yes",则使用服务的用户不能在该服务的目录中创建或修改文件。
writable
writeable
write ok
这三个参数功能相同。如果它们被设置为"no",则使用服务的用户不能在该服务的目录中创建或修改文件。
read list
write list
这两个参数分别指定只允许对一个服务进行只读访问或同时有"写"权限的主机列表,这里,如果一个主机同时在两个列表里,则"写"优先。
5).通过是否在浏览器列表中显示来控制
browsable
browseable
这两个功能相同的参数控制该段是否在浏览列表中列出。浏览列表列出的是可获得的共享列表。一般[home]段禁止浏览,以提高安全性。
3、Windows 9x做为SMB客户的设置
1).配置microsoft网络客户
在客户机(WIN9X)上,在控制面板里添加microsoft网络客户。选中microsoft网络客户--标识--计算机名-- my_computer_name--my_group,其中,my_computer_name将作为表示客户机的NetBIOS名,
my_group为组名
2).编辑注册表记录
如果在SMB服务器上的smb.conf 文件中没有用到"encrypt
passwords",即使用"普通文本"格式的口令,则必须要编辑注册表,来允许使用"普通文本"格式的口令。
在Windows的注册表的以下条目中:
/HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/VxD/VNETSUP
新建DWORD值,将新建的值命名为EnablePlainTextPassword;双击EnablePlainTextPassword,将键值设为1。
3).重新启动
重新启动计算机,以用户名/口令登陆。该用户名/口令将用于与SMB服务器连接时进行用户身份认证,所以如果要访问SMB服务器上用户自己的home目录,建议使用与SMB服务器上相同的用户名/口令。
4).访问Samba服务器
通过网络邻居浏览访问Samba服务器,可以在列表里选择,也可以在命令窗口里使用命令:
\\sambaserver
4 、Samba服务器提供的其他命令
smbstatus
smbstatus指令用于显示当前的SMB服务器的连接状态。例如,在IP地址为202.204.3.16的"cuckoo"客户机上,用户john访问SMB服务器的"public"服务时,命令输出如下:
/usr/bin/smbstatus
Samba version 2.0.3
Service uid gid pid machine
----------------------------------------------
public john john 10009 cuckoo (202.204.3.16) Fri Jul 21 20:3
No locked files
Share mode memory usage (bytes):
1048464(99%) free + 56(0%) used + 56(0%) overhead = 1048576(100%) total
此命令可以附加一些开关来显示不同的内容,下表列出了主要的开关及其含义:
表1-2 smbstatus命令主要选项表
nmblookup
nmblookup命令用于把一个NetBIOS名字映射到IP地址。对于上面的例子,可以使用下面的命令查找主机cuckoo:
/usr/bin/nmblookup sale
可以使用合适的选项来允许nmblookup查询一个IP广播域或是一个单独的机器,该命令常用的选项参看表1-3。