Linux下Samba做文件服务器的问题解答


本文讨论范围是samba使用过程中遇到的问题。

问题1:在win2000客户端,用中文做文件名,到linux的命令行下,变成乱码怎么解决?

解决:可能是命令行下不支持unicode,为了通用,强制samba使用GB2312就可以了在[global]小节加一行: unix charset = GB2312 后注:最好设置为GBK,否则某些字符会出问题,造成漫游账号不能用。

问题2:在共享目录设置中可以用comment做注解,但是中文字符在win客户端看过来会乱码,怎么解决?

解决:在[global]小节,添加一行: display charset = GB2312 就可以了,要求samba是3.0以上。

问题3:怎么样开放共享资源给匿名(guest)用户?

解决:在[global]小节,添加一行: map to guest = bad user 然后在相应的共享资源小节增加2行: guest account = nobody guest ok = Yes 这样所有没有账号对应和密码错误的用户连上来,访问这个共享资源时,它的对应用户就是nobody。

问题4:在某些win2000的机器上面不能修改域的账号的密码,samba的log提示 check_oem_password: incorrect password length (-312332314)。

解决: 卸载win2k的hotfix补丁:KB828741 或者下载更新当前最新版的samba3.04。

问题5: 原来使用的是发行版打包的samba,现在要下载最新版源码编译安装,怎么把原来的设置保留?

解决: 先停掉原来的samba服务:

/etc/init.d/smb stop

备份原来的域账号资料到:

/root/anheng.backup: pdbedit -e smbpasswd:/root/anheng.backup

再编译安装新的samba:

./configure --prefix=/usr/local/samba --enable-cups --with-smbmount --with-acl-support make make install

这样新的samba就安装在:

/usr/local/samba了 smb.conf

放在了:

/usr/local/samba/lib/smb.conf

把老的smb.conf复制到上面的目录:

cp /etc/samba/smb.conf /usr/local/samba/lib/smb.conf

用testparm测试设置文件是否有问题,要指定绝对路径:

/usr/local/samba/bin/testparm
[#page_#][#page_#]

如果直接执行testparm,执行的把是老版本的samba的testparm 一般不会有问题,我这里遇到的一个问题是说passwd程序没有找到,把smb.conf中行 passwd program = passwd %u 改成 passwd program = /usr/bin/passwd %u 最后,修改启动脚本,/etc/init.d/smb 把里面的nmbd和smbd前面增加绝对路径/usr/local/samba/sbin 就全部安装完成了。启动之前,恢复域账号: pdbedit -i smbpasswd:/root/anheng.backup 然后就可以启动了 /etc/init.d/smb start 新安装后,由于程序和设置文件跟原来发行版的linux的目录位置不一致,如果你使用webmin进行管理,就要重新设置一下webmin里面samba模块的配置信息。

问题6:在某些win2k机器加入到域的过程中,输入完域管理员账号后,win2k提示没有找到账号,看samba的日志,没有任何提示。

解决: 用netstat -n -a看到没有连接到域服务器的139口,却和另一台samba服务器有连接,就是说win2k错误的连接到了另一台samba服务器,把这台服务器的主浏览器级别调低后,问题解决修改smb.conf的os level = 99 最好不要装2台域控制器。

问题7:怎么让某些域账号在本机可以有administrator权限?

解决:在本机(WIN2K专业版),先用本机的ADMINISTRATOR来登陆,点控制面板里面的用户管理,添加用户,设置添加的用户是域用户,然后选择本机权限为ADMINISTRATOR。

问题8:在某些客户端,使用域账号,漫游登陆时,存放在域服务器上的FOXMAIL程序不能运行,而在有些客户端能够运行。怎么解决?

解决:在有问题的客户端,删除有问题的漫游账号,这样操作:控制面版->系统->用户配置文件->选定&删除。

问题9:在客户端,ie的收藏夹中出现特殊字符的文件名时估计跟我使用GB2312有关),漫游账号不能复制到本地。而造成用临时账号登陆系统,而不能访问原来的桌面设置和收藏夹等。

解决1:找到捣乱的文件,删掉它,更好的办法还没有找到。

解决2:初步确定是win这边的字符x0a1x0aa到了samba变成了x014,这个只在ver3中出现,估计是一个bug,再bug被解决之前我暂时用php+bash用脚本解决,在/etc/cron.hourly/放一个scan14.sh,里面只要一行: find /home/samba/profiles -cmin -61 -exec php /root/f.php { } \; 然后在/root/f.php: ...(见附件) 这样每一小时都查一边文件,修正非法字符解决3:把global里面的unix charset 设置由GB2312改成GBK就行了 unix charset GBK。

相关内容