測試環境: 操作系統:redflagDC4.1 samba版本:samba-3.0.2a-9AX ip:172.16.100.2 (注意,一定要使用比較「乾淨」的DC4.1環境,就用自帶的samba也可以成功,我們之前的測試因為操作系統已經被別人做過配置,所以換了好幾個版本的samba都不行,不得已後來重新安裝DC4.1,配置就很順利了。) PDC控制器:windows2000Server 測試域名tail 主機名pig ip:172.16.100.1 測試DNS :windows2000Server 主機名pig (與PDC為同一台伺服器) 測試過程: 一、準備工作: 配置windows2000Server為PDC,建立tail域,配置能夠解析 tail 域的DNS,並用window2000或者windows98和客戶端使用該DNS,能夠正確登錄windows2000Server的PDC域。 二、配置winbindd服務連接PDC抓到的域內的用戶和組信息: 1、修改nsswitch.conf文件: vi /etc/nsswitch.conf 做如下修改,使winbind成為passwd及group的認證信息源 passwd: files winbind shadow: files group: files winbind 2、配置DC4.1的DNS客戶端文件: vi /etc/resolv.conf 加上nameserver 172.16.100.1 ping一下pig.tail,確保可以連通 3、vi smb.conf,確保[global]段設置中有下面幾行: [global] workgroup = TAIL netbios name = rfdc41 server string = Samba Server security = domain password server = pig.tail preferred master = no domain master = no domain logons = no idmap uid = 10000-20000 idmap gid = 10000-20000 template shell = /bin/bash template homedir = /home/%D/%U winbind separator = % winbind use default domain = Yes idmap uid和idmap gid是設置winbind把win200x域用戶、組map成本地用戶、組所使用的ID號範圍,如果用戶很多,可以加大這兩個值之間的差。 Template homedir是用戶登錄后的主目錄,我設置成/home/域名/用戶名。 Template shell是用戶登錄后的shell,如果你想用PDC給你的sshd做認證,就可以加上這個,給用戶一個登錄shell。 winbind separator是獲取帳號的時候,域名與用戶名之間的分隔符,比如tail%work winbind use default domain設置它為yes是在顯示的時候屏蔽掉域名與用戶名之間的分隔符,否則用戶在登錄linux系統的時候,就要很煩瑣地鍵入類似tail%work這樣的用戶名了。 5、用samba的net join命令把這台機器加入到windows200x域中(samba3.0以上的版本可以支持) net rpc join -S pig.tail -U Administrator 然後輸入域管理員密碼,也就是Administrator的密碼。 6、啟動samba服務和winbindd服務 #service smb start #service winbind start 7、用wbinfo命令查看用winbindd服務連接PDC抓到的域內的用戶和組的信息 wbinfo -u 可以看到類似如下winbind抓取到的PDC用戶信息: Administrator Guest huaijinyang jack krbtgt laohuai user1 user2 user3 user4 user5 work 再執行: wbinfo -g 可以看到類似如下winbind抓取到的PDC組信息: BUILTIN%System Operators BUILTIN%Replicators BUILTIN%Guests BUILTIN%Power Users BUILTIN%Print Operators BUILTIN%Administrators BUILTIN%Account Operators BUILTIN%Backup Operators BUILTIN%Users Domain Admins Domain Users Domain Guests Domain Computers Domain Controllers Cert Publishers Schema Admins Enterprise Admins Group Policy Creator Owners DnsUpdateProxy zzz 8、檢查PDC用戶(組)轉換為本地用戶(組)UID和GIU情況: getent passwd 顯示將PDC用戶轉換成系統用戶的UID情況,顯示最後類似如下信息: Administrator:x:10000:10000::/home/TAIL/Administrator:/bin/bash Guest:x:10001:10000::/home/TAIL/Guest:/bin/bash huaijinyang:x:10002:10000:huai:/home/TAIL/huaijinyang:/bin/bash jack:x:10003:10000:jack:/home/TAIL/jack:/bin/bash krbtgt:x:10004:10000::/home/TAIL/krbtgt:/bin/bash laohuai:x:10010:10000:laohuai:/home/TAIL/laohuai:/bin/bash user1:x:10005:10000:user1:/home/TAIL/user1:/bin/bash user2:x:10006:10000:user2:/home/TAIL/user2:/bin/bash user3:x:10007:10000:user3:/home/TAIL/user3:/bin/bash user4:x:10008:10000:user4:/home/TAIL/user4:/bin/bash user5:x:10011:10000:user5:/home/TAIL/user5:/bin/bash work:x:10009:10000:work:/home/TAIL/work:/bin/bash PDC用戶Administrator的UID從10000開始。 getent group 顯示將PDC用戶轉換成系統用戶的GID情況,顯示最後類似如下信息: Domain Admins:x:10003:Administrator Domain Users:x:10000:Administrator,Guest,krbtgt,work,jack,user1,user2,user3,user4,huaijinyang,user5,laohuai Domain Guests:x:10005:Guest Domain Computers:x:10006:CALL-CENTER$,hjy$,localhost$,lishen$,HUAIJINYANG$,smb1$,rfas41$,lux$ Domain Controllers:x:10007:PIG$ Cert Publishers:x:10008: Schema Admins:x:10002:Administrator Enterprise Admins:x:10004:Administrator Group Policy Creator Owners:x:10001:Administrator DnsUpdateProxy:x:10009: zzz:x:10010: BUILTIN%System Operators:x:10011: BUILTIN%Replicators:x:10012: BUILTIN%Guests:x:10013: BUILTIN%Power Users:x:10014: BUILTIN%Print Operators:x:10015: BUILTIN%Administrators:x:10016: BUILTIN%Account Operators:x:10017: BUILTIN%Backup Operators:x:10018: BUILTIN%Users:x:10019: PDC組Users 的UID從10000開始。 能夠看到這樣的信息,表示配置工作已經完成了大半,winbind服務已經在正常工作了。 這裡有一點需要注意,如果在PDC域中新建了用戶或者為某個用戶修改了密碼,需要重新刷新samba服務和winbind服務,過程如下: service smb stop service winbind stop rm -f /etc/samba/*.tdb rm -f /var/cache/samba/*.tdb net rpc join -S pig.tail -U Administrator service smb start service winbind start 才能重新抓取到PDC的更新信息。 9、建立用戶的登錄主目錄 samba的配置文件中指定了template homedir的路徑,我們先要建立這個目錄 mkdir /home/TAIL 注意PDC域名要大寫! 三、配置PDC用戶登錄的pam認證 1 、備份原來的pam認證文件 mkdir /home/backup cp /etc/pam.d/login /home/backup cp /etc/pam.d/system-auth 2、修改login文件 vi /etc/pam.d/login 這個文件最後一句是 session optional pam_console.so 在這句後面加上 session required pam_mkhomedir.so skel=/etc/skel umask=0022 3、修改system-auth文件 vi /etc/pam.d/system-auth a、找到以「auth」字元串開頭並調用「pam_unix.so」的語句,如下: auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok 在這一句最後加上字元串「use_first_pass」,如下: auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok use_first_pass 然後在這一句上面加上語句: auth sufficient /lib/security/pam_winbind.so b、找到以「account」字元串開頭並調用「pam_unix.so」的語句,如下: account required /lib/security/$ISA/pam_unix.so 在這一句最後加上字元串「use_first_pass」,如下: account required /lib/security/$ISA/pam_unix.so use_first_pass 然後在這一句上面加上語句: account sufficient /lib/security/pam_winbind.so 四、用PDC用戶登錄測試 在linux中某個終端以PDC用戶登錄,能夠看到$提示符,說明配置完成。
[火星人
]
用winbind實現windowsPDC和linux系統的帳號同步 已經有480 次圍觀
本文地址: http://coctec.com/docs/linux/show-post-201926.html