1、使用的相關軟件:
samba-3.0.7 pam-0.75-32 (這些軟件的安裝過程我就不講了,參考CU上的相關文件吧:)
2、實現方法:
1) 在samba安裝完成后,考貝libnss_winbind.so庫到/lib目錄下
cp ../samba/source/nsswitch/libnss_winbind.so /lib
ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2
2) vi /etc/nsswitch.conf 做如下修改,使winbind成為passwd及group的認證信息源
passwd: files winbind
shadow: files
group: files winbind
3)用ldconfig命令來使winbind使用libnss_winbind.so庫,這樣就不用重啟機器了,如果不行,就重啟一下機器 。
/sbin/ldconfig -v | grep winbind
4)vi smb.conf ,在[global]設置中加入下面幾行
# separate domain and username with '/', like DOMAIN+username
winbind separator = /
# use uids from 10000 to 20000 for domain users
idmap uid = 10000-20000
# use gids from 10000 to 20000 for domain groups
idmap gid = 10000-20000
# allow enumeration of winbind users and groups
winbind enum users = yes
winbind enum groups = yes
# give winbind users a real shell (only needed if they have telnet aclearcase/" target="_blank" >ccess)
template homedir = /home/%D/%U
template shell = /bin/bash
winbind separator是域名與用戶名和組名之間的分隔符,我設成’/’,
idmap uid 和 idmap gid是設置winbind把win200x域用戶、組map成本地用戶、組所使用的ID號范圍,如果你的用戶很多,可以加大這兩個值之間的差。Template homedir是用戶登錄后的主目錄,我設置成/home/域名/用戶名。Template shell是用戶登錄后的shell,如果你想用PDC給你的sshd做認證,就可以加上這個,給用戶一個shell,不錯吧。
5)用samba3的net join命令把這臺機器加入到windows200x域中
/usr/local/samba/bin/net rpc join -S PDC -U Administrator
然后輸入域管理員密碼,administrator是域管理員帳號。PDC是你的域名,可以用NETBIOS名。
6)啟動winbindd服務
/usr/local/samba/sbin/winbindd
7)用wbinfo 命令查看你用winbindd服務連接PDC抓到的域內的用戶和組的信息。 引用:
[root@LogBack wy]# wbinfo -u
WY/Administrator
WY/Guest
WY/krbtgt
WY/wuying
WY/wy
其中’/’前的是域名,我這是WY,’/’后的是域用戶名。 引用:
[root@LogBack wy]# wbinfo -g
BUILTIN/System Operators
BUILTIN/Replicators
BUILTIN/Guests
BUILTIN/Power Users
BUILTIN/Print Operators
BUILTIN/Administrators
BUILTIN/Account Operators
BUILTIN/Backup Operators
BUILTIN/Users
WY/Domain Admins
WY/Domain Users
WY/Domain Guests
WY/Domain Computers
WY/Domain Controllers
WY/Cert Publishers
WY/Schema Admins
WY/Enterprise Admins
WY/Group Policy Creator Owners
WY/DnsUpdateProxy
其中’/’前的是域名,我這是WY,’/’后的是域組名。
用getnet passwd 和getnet group你可以看到本地服務器及域服務器上所有的用戶及組的信息。
到這兒,我們的工作已經完成一大半了。Winbindd服務已經可以正常工作了:)
8)到samba-3.0.7的源碼目錄source下,編譯pam_winbind.so認證模塊,CP到/lib/security下:
make nsswitch/pam_winbind.so
cp ../samba/source/nsswitch/pam_winbind.so /lib/security
9)下面是設置PAM了,在設置前請先備份你的/etc/pam.d目錄。如果是設sshd等關建登入服務的PAM,改錯了,可能ssh就登不進去,所以要小心操作。
下面是我改過的/etc/pam.d/sshd的配置文件: 引用:
[root@LogBack wy]# cat /etc/pam.d/sshd
#%PAM-1.0
auth sufficient /lib/security/pam_winbind.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account sufficient /lib/security/pam_winbind.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_limits.so
session required /lib/security/pam_mkhomedir.so
session optional /lib/security/pam_console.so
其中兩個含有pam_winbind.so的行是這加進去的,用來做winbind的認證。
含有pam_mkhomedir.so的行也是我加進去的,用來在域用戶登錄時自動給他建立主目錄和登錄腳本,不然你一登錄就會在發現自己在根目錄下。注意,主目錄的路徑是你在smb.conf文件中指定的Template shell變量,我這是/home/WY/用戶名。/home/WY目錄要手動建,不然是登不進去的。我把這個目錄的權限設成 1777,好處是大家都能寫,但只有屬主可刪,就象/tmp目錄一樣。
再其它機器上用ssh 連看試一下: 引用:
[wy@wy1 RPMS]$ ssh wy/wuying@172.16.130.35
wy/wuying@172.16.130.35's password:
Last login: Sat Oct 30 19:57:47 2004 from 172.16.130.36
[WY/wuying@LogBack wuying]$ id
uid=10003(WY/wuying) gid=10009(WY/Domain Users) groups=10009(WY/Domain Users)
[WY/wuying@LogBack wuying]$
OK,我們成功了。WY/wuying是“域名/用戶名”的行式,這個域用戶被map成為本地的uid號為1009的用戶。
下面是我的/etc/pam.d/samba的配置文件: 引用:
[root@LogBack wy]# cat /etc/pam.d/samba
#%PAM-1.0
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth
然后vi smb.conf文件,在最后加上 引用:
[ADMshare]
comment = admin dir
path = /home/WY/administrator
valid users = "WY+Domain Admins"
public = no
writable = yes
printable = no
create mask = 0775
directory mask = 0775
這樣就只有WY域中的Domain Admins組的成員才可以往ADMshare共享中寫東西,是不是好管理多了呢。如果域用戶的密碼更改,我們也不用去每臺linux服務器上改密碼了,用winbind去win200xPDC上做認證,他怎么改都行,方便多了吧。
我這里只進了winbind和PAM的配置方法,如果大家對其中的一些概念還不明白的話,可以參考一下SAMBA3源碼包samba-3.0.7.tar.gz解開后docs目錄中的pdf文檔。我講的部分都在smaba-HOWTO-collection.pdf文檔的第6及第20章中,相關的概念講解得也不錯,如果哪位高手有時間的話,把這些文檔翻成中文,那真是CU朋友之福了。晚上23:15了,回家嘍。
percen:
我在RH9上配置成功.樓主發的資料有點錯誤,就是在配置SMB的時候設定分隔符為"/",即:winbind separator = / ,在設置分享資料夾的存取權限時就應該為"domain/users",而不是“domain+users”。只要定義的前后一致就可以了。如果winbind separator = + ,則分享資料夾的存取權限時就應該為"domain+users"
原文轉自:http://www.anti-gravitydesign.com