歡迎您光臨本站 註冊首頁

用winbind實現windowsPDC和linux系統的帳號同步

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

測試環境:
操作系統: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