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

运维 系统运维
本文讨论范围是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。

【编辑推荐】

  1. Linux系统下配置Netware服务器方法
  2. 嵌入式设备上的 Linux 系统开发
  3. 深度介绍Linux内核是如何工作的(1)
责任编辑:张燕妮 来源: 中关村在线
相关推荐

2009-09-02 17:14:12

邮件服务器

2009-11-27 13:11:31

Samba做文件服务器

2011-09-01 18:12:43

Linuxsamba

2009-10-27 11:10:56

linux问题解答

2011-05-10 14:14:10

OSPF路由

2011-03-30 14:44:28

MRTG

2011-05-10 14:32:19

OSPF路由

2009-09-25 10:13:15

2010-12-27 14:50:16

Windows 部署服

2009-07-31 12:16:58

linux无盘系统

2011-10-20 09:57:58

AS400 FTPFTP

2010-10-09 17:19:50

mysql存储过程

2009-12-02 18:16:31

IBM System

2011-01-11 15:12:46

Linux冲突停滞

2009-10-13 14:56:00

CCNA培训

2011-07-13 17:57:15

SQLite

2009-12-25 10:59:08

WPF Timer

2010-07-26 13:05:44

Perl子程序参数

2010-09-13 14:43:47

无线技术常见问题

2011-08-09 15:10:00

SQLite
点赞
收藏

51CTO技术栈公众号