利用 linux做域服务器 --安恒网管员手记
2004-06-18    刘世伟   
打印自: 安恒公司
地址: HTTP://opv-pe.anheng.com.cn/news/article.php?articleid=310
利用linux做域服务器中的一些问题以及解决



[安恒原创]
转载请注明出处  http://www.anheng.com.cn/news/15/310.html

本文章动态更新 刘世伟 msn:shiwei@cfido.com QQ:10202

如何安装samba做域服务器,不在本文讨论范围,这里记录的是使用过程中遇到的问题。

-3.问题:2004-04-10 在win2000客户端,用中文做文件名,到linux的命令行下,变成乱码怎么解决?
解决:可能是命令行下不支持unicode,为了通用,强制samba使用GB2312就可以了
在[global]小节加一行:
unix charset = GB2312
后注:最好设置为GBK,否则某些字符会出问题,造成漫游账号不能用,见问题6


-2.问题:2004-05-21在共享目录设置中可以用comment做注解,但是中文字符在win客户端看过来会乱码,怎么解决?
解决:在[global]小节,添加一行:
display charset = GB2312
就可以了,要求samba是3.0以上


-1.问题:2004-06-09 如何开放共享资源给匿名(guest)用户?

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

 


1.问题: 2004-06-10在某些win2000的机器上面不能修改域的账号的密码,samba的log提示
check_oem_password: incorrect password length (-312332314)
http://www.anheng.com.cn/news/15/310.html
解决:
卸载win2k的hotfix补丁:KB828741
或者下载更新当前最新版的samba3.04

 


2.问题: 2004-06-12原来使用的是发行版打包的samba,现在要下载最新版源码编译安装,怎么把原来的设置保留?
http://www.anheng.com.cn/news/15/310.html
解决:
先停掉原来的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,如果直接执行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模块的配置信息

make install 安装时会把被覆盖的原来的文件增加一个后缀 .old, 如果新的版本出现问题, 可以用make uninstall恢复原来的版本,   make uninstallman ,make uninstallhelp ,make uninstall都是恢复命令.
要删除反安装信息,使用 make revert命令,清理.old文件


3.问题:2004-06-14在某些win2k机器加入到域的过程中,输入完域管理员账号后,win2k提示没有找到账号,看samba的日志,没有任何提示
http://www.anheng.com/news/15/310.html

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


4.问题:2004-06-21怎么让某些域账号在本机可以有administrator权限?
解决:将域账号加入到域管理员组。
加入用户组操作,是基于linux的系统账号的。将对应的账号加入对应的系统组。
比如域管理员组对应的系统账号是admins,就只要把用户加入admins组,这些用户在工作站自然就具有了administrator权限。


5.问题:2004-06-21在某些客户端,使用域账号,漫游登陆时,存放在域服务器上的FOXMAIL程序不能运行,而在有些客户端能够运行。怎么解决?
解决:在有问题的客户端,删除有问题的漫游账号,这样操作:控制面版->系统->用户配置文件->选定&删除


6.问题:2004-07-10在客户端,ie的收藏夹中出现特殊字符的文件名时(估计跟我使用GB2312有关),漫游账号不能复制到本地。而造成用临时账号登陆系统,而不能访问原来的桌面设置和收藏夹等
解决3:把global里面的unix charset 设置由GB2312改成GBK就行了
unix charset GBK
2006-02-15
经过上面的设置,仍然偶尔会出现特殊字符问题, 看samba的升级公告, 3.21b版解决了这个问题.
升级了一下,等以后看看效果如何.  


7.问题:某些漫游账号的foxmail出现问题,必须在本地有超级用户权限才可以执行。
让他们注销后,
将他的本地漫游设置删除,在控制面板-系统这里做。
将域上的设置也删除, /home/samba/profiles/username这里
然后再登陆就会重建用户设置,就好了


8:问题:在将机器加入域的时候,提示 [提供的凭据与已存在的凭据集冲突].
解决:因为已经用其他账号跟域服务器ipc$连接,开dos窗口,删除跟服务器的ipc$空连接:
c:/>net use \\server\ipc$ /delete
然后再进行加入域操作
或者重新启动,马上做加入域操作


9.将一台服务器的samba搬到另一台服务器
a:打包/usr/local/samba整个目录
b.搬到目的服务器的/usr/local/samba
c.修改/etc/pam.d/samba增加passwd模块,怎么加,看/etc/pam.d/passwd为例,目的是给samba增加passwd修改权
d.修改webmin里面关于samba的目录路径
e.修改/etc/init.d/smb或者/etc/init.d/samba的2个可执行文件的路径


10.在debian下的samba做的域服务器,不能在win客户端修改域账号的密码
解决:2004-08-23:debian下的passwd命令的交互字符串跟mandrake和redhat的不同,要根据实际的显示修改
[global]
passwd chat = *New*UNIX*password* %n\n *Re*ype*new*UNIX*password* %n\n *passwd:*updated*successfully*
还要注意,在/etc/pam.d/samba文件最后增加1行:
@include common-password
这个跟其他的发行版也是不同的。


11.在debian下不能将机器加入到域,在控制面版-系统-网络标识-属性-加入到anheng域-输入完域管理员权限密码后,提示找不到账号
解决:2004-08-24:debian的adduser命令跟其他的发行版略有不同,不支持-n参数,这个参数,在其他的发行版下man adduser时没有找到说明,但是aduser --help时提示有,没有仔细研究起什么左右,只是简单的在smb.conf中去掉这个参数,问题就解决了:
[global]打印机5100
        add machine script = useradd  -d /dev/null -g machines -c "计算机账号" -s /bin/false  %u


12.windows用户通过打印机管理可以停止了打印机的打印,但是不能用win的打印机恢复打印。只能通过http://server:631控制
  cups让它恢复打印,怎么能让它自动开始打印。
解决:cpus恢复打印的命令是 lpadmin -p hd5100 -E  //恢复 hp5100的打印
     只要在/etc/crontab加一行,让每隔一段时间就执行一下就可以了。
11 * * *  * root lpadmin -p hp5100 -E;lpadmin -p 4mv -E

责任编辑: admin