Samba3.0.25c推荐的winbindd相关配置
时间:2009-04-02 来源:balloon123
Samba的winbindd实在把人整惨了,仔细阅读winbindd的manpage,记笔记如下:
pam_winbind模块提供auth,account,password模块类型。但是account模块仅做getpwnam()来确认系统对用户有uid,因为认证服务实质是由域控制器提供的。只要库libnss_winbind被正确安装,用户名来源合法,认证总是能顺利进行的。
配置步骤如下:
(1) 配置/etc/nsswitch.conf如下:
passwd: files winbind
group: files winbind
(2) 在/etc/pam.d/*中修正所有的auth行如下:
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_winbind.so
auth required /lib/security/pam_unix.so \
use_first_pass shadow nullok
注意:PAM模块pam_unix最近替换了pam_pwdb;有些Linux系统会用pam_unix2 替换pam_unix 。特别强调sufficient和use_first_pass这两个关键字。
(3) 在/etc/pam.d/*中修正所有的account行如下:
account required /lib/security/pam_winbind.so
(4) 加入域:
net join -S PDC -U Administrator
(5) 拷贝libnss_winbind.so到/lib;拷贝pam_winbind.so到/lib/security.;
(6) 创建一个从/lib/libnss_winbind.so到/lib/libnss_winbind.so.2的符号链接;若glibc版本较老,那么链接的目的端是/lib/libnss_winbind.so.1 ;
(7) 配置smb.conf:
[global]
winbind separator = +
winbind cache time = 10
template shell = /bin/bash
template homedir = /home/%D/%U
idmap uid = 10000-20000
idmap gid = 10000-20000
workgroup = DOMAIN
security = domain
password server = *
(8) 开启winbindd进程,然后getent passwd 或getent group就可以看到Linux本地用户(组)和域用户(组)。
配置的时候需要注意:
(1) nmbd进程需要开启,因为winbindd进程需要它。
(2) PAM模块的配置需要十分小心,做好备份。
(3) 如果多个unix机器一起跑winbindd,通常各个winbindd为用户和组产生的id不同。
(4) 若NT SIDS到UNIX user和group id映射的文件遭到破坏,映射信息就丢失。