pwl 2008-09-18
近日在我的ThinkPad T61本本上装了个Fedora 9,因为笔记本是用来办公的,平时需要与其他机器共享文件,因此yum install samba,设置了一番之后,满以为就OK了,结果却不是那么回事,出现了两个问题,折腾了一天,直到半小时前才搞掂。现在记录下来方便以后备查,同时也方便大家,不用受这等苦了。
问题一:其他机器访问Fedora 9的共享目录时,始终都被要求输入用户名和密码,即使是[public]定义的共享目录也一样!而[public]配置无误,guest ok = yes, public = yes,而我以前长期使用的Mandriva系统没有这个问题。
解决办法:解决这个问题需要修改smb.conf文件,在[global]节中加入map to guest = bad user,这个配置的意思是将所有samba系统主机所不能正确识别的用户都映射成guest用户,这样其他主机访问Fedora 9的public目录时就不再需要用户名和密码了。
分析:在Fedora 9系统中,map to guest的默认配置不是bad user,因此一旦客户机中访问Fedora 9的用户不是map to guest所指定的用户时,则samba将之视为普通用户,而不是guest,从而要求用户输入用户名和密码。假设客户机访问的用户名是guest,密码为空,而samba的map to guest又正好设置为guest,则客户机将不用输入用户名和密码。为了能适应所有客户机中不同的guest帐号,map to guest = bad user是个明智的选择。
问题二:Fedora 9访问其他任何机器时,能看到共享目录和其下的文件和子目录,但是不能进行写操作,只要一写就报告“为smb协议服务的进程意外退出”,无法在XP的共享目录中进行写操作,部分打开文件夹的操作也报此错误!这个问题令人百思不得其解,只到晚上我在家里使用Smb4k访问远端主机的共享目录时才现出此错误的真实面目:
mount error 1 = Operation not permitted
解决办法:开一个console,敲入以下命令:
su -c 'chmod u+s /sbin/mount.cifs'
su -c 'chmod u+s /sbin/umount.cifs'
或者su -到root用户,再执行chmod。
分析:由此错误提示可见,出现这个错误的原因在于samba客户端在挂载远端主机的共享目录时没有权限,而我平时在使用Linux系统时都是用普通用户登录而非root用户,普通用户默认没有mount的权限,因此挂载不上远端共享目录,无法写操作就很正常了。