(六)linux服务器向windows客户端提供文件/目录及打印机共享
linux服务器上的samba运行起来以后,linux就相当于一台文件及打印服务器,向windows和linux samba客户提供文件及打印服务。工作在共享模式或者用户模式下的两种方法较为常见(Security=share或Security=user),其中有以下常见问题。
环境:RedHat linux 6.x
1.共享模式时从windows 98客户端不能从网上邻居中看到服务器,或者看到后不能点击进入共享资源,说密码不对等等。
a.没有去掉guest account = pcguest一行前面的注释符号
b.没有创建guest帐号pcguest (#useradd pcguest即可)
c.windows 98默认发送加密的口令,而/etc/smb.conf中没有enable samba加密口令。或者也可以编辑windows 98注册表,让它发送文本口令(不被建议的)
2.在/etc/smb.conf中定义了完全可写共享目录,但实际操作时不能写入。
a.特别要注意的是:linux本身的文件及目录权限永远大于samba定义的权限,要让某共享资源目录可以被写,首先要保证在linux下面该目录可以被相应的用户可写,这是前提。
3.在共享模式下如何对某共享目录加用户名及密码保护
a.看下面的共享资源定义例子:
security = SHARE
username map = /etc/smbusers
log file = /var/log/samba/log.%m
max log size = 50
socket options = TCP_NODELAY
client code page = 936
os level = 40
local master = yes
preferred master = yes
domain master = yes
guest account = pcguest
encrypt passwords = yes
smb passwd file = /etc/smbpasswd
[sales]
comment = test folder
path = /sales/training
guest ok = no
writable = yes
valid users = @sales
write list = @sales
在上面的例子中,我们定义了security=share和samba encrypt password,共享目录名sales不是guest用户可访问的,需要属于sales组里的用户可访问,同时也可写,当然在linux下面要保证/sales/training目录可被组sales可写,这样以后定义你的windows logon(不是NT域登录)的用户名为组sales里的用户名,然后在网上邻居中双击sales时会提示你密码,该密码是你在samba服务器上定义的samba加密的口令,在上面的例子中用户名和密码对存放在文件/etc/smbpasswd中,当然你事先要有系统用户名在/etc/passwd中。
4.windows用户经常不能在网上邻居中浏览到samba服务器的名字。
a.windows的网上邻居服务是非常不可靠的服务,它所建立的浏览列表不可靠,由众多因素引起。
b.一种可靠的解决办法是直接用"查找"-"计算机"-打入samba服务器的主机名进行查找。注意要确保你在windows启动时没有取消登录。
c.你也可以在DOS窗口用net use命令:如
c:>net use m: sambaservernameshareresourcename
5.服务器端的测试配置工具
a.在配置完/etc/smb.conf后运行testparm检测配置文件中是否有相应语法错误
b.在samba服务起来后,用smbstatus报告用户使用和登录情况。
c.在更改过配置文件后,运行/etc/rc.d/init.d/smb restart重读配置文件