如何使用winbind獲取ad用戶詳細信息
我已經使用了網上的教程將samba添加到windows的域裡面,也用wbinfo -u 返回了相應域中的用戶信息
但是我更想知道能否獲取用戶的詳細信息,例如電話信息,請問有人做過這東西嗎?
我已經使用過了wbinfo -i user來看了,但是返回來的信息沒有顯示相關信息
《解決方案》
我也正在尋找方法。。。。。。
《解決方案》
A、 安裝Windows Server 2008 中文版企業版;
B、 安裝Active Directory 域伺服器(使用Dcpromo.exe 命令進行安裝和配置);
1、主機名稱:dc
2、IP地址:192.168.1.254
3、域名:nseasy.net
4、DNS伺服器:dc.nseasy.net
C、 配置DNS伺服器、組策略和建立域用戶帳戶;
D、 安裝Centos 5.4中文版;
1、主機名稱:smb.nseasy.net
2、IP地址:192.168.1.253
E、 配置NSS伺服器控制帳號的驗證,主要修改文件nsswitch.conf(存放路徑:/etc/nsswitch.conf);
passwd: files winbind
shadow: files winbind
group: files winbind
hosts: files dns winbind
bootparams: nisplus files
ethers: db files
netmasks: files
networks: files dns
protocols: db files
rpc: files
services: files
netgroup: files
publickey: nisplus
automount: files
aliases: files nisplus
F、 配置kerberos伺服器,主要修改文件krb5.conf(存放路徑:/etc/krb5.conf);
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
default_realm = NSEASY.NET
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
NSEASY.NET = {
kdc = dc.nseasy.net:88
admin_server = dc.nseasy.net:749
default_domain = nseasy.net
}
.nseasy.net = NSEASY.NET
nseasy.net = NSEASY.NET
profile = /var/kerberos/krb5kdc/kdc.conf
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}
修改 /var/kerberos/krb5kdc/kdc.conf
acl_file = /var/Kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/word
admin_keytab = /var/Kerberos/krb5kdc/kadm5.keytab
v4_mode = nopreauth
NSEASY.NET = {
Master_key_type = des-cdc-crc
Supported_enctypes = arcfour-hmac:normal arcfour-hma
G、 配置Samba伺服器,主要修改文件smb.conf(存放路徑:/etc/samba/smb.conf);
workgroup = NSEASY
realm = NSEASY.NET
netbios name = smb
password server = dc.nseasy.net
encrypt passwords = yes
security = ads
server string = Samba Server %v
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind separator = /
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
winbind nested groups = Yes
template homedir = /home/%U
template shell = /bin/bash
log file = /var/log/samba/%m.log
max log size = 50
os level = 33
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
mangling method = hash2
display charset = cp936
dos charset = cp936
unix charset = cp936
client use spnego = yes
domain master = no
dns proxy = no
preferred master = no
client ntlmv2 auth = yes
hosts allow = 192.168.1. 127.
comment = Home Directories
path = /home/%U
writable = yes
browseable = no
valid users = %U
root preexec = /home/mkhome.sh %U %G
1、啟動Samba伺服器命令:service smb start(重生啟動:service smb restart)
2、測試Samba伺服器的文件配置情況使用testparm
3、配置system-auth文件,主要修改文件system-auth(存放路徑:/etc/pam.d/system-auth);
auth required pam_env.so
auth sufficient pam_unix.so likeauth nullok
auth sufficient pam_winbind.so use_first_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 100 quiet
account sufficient pam_winbind.so use_first_pass
account required pam_permit.so
password requisite pam_cracklib.so retry=3 type=
password sufficient pam_unix.so nullok use_authtok md5 shadow
password sufficient pam_winbind.so use_first_pass
password required pam_deny.so
session required pam_winbind.so use_first_pass
session required pam_limits.so
session required pam_unix.so
4、配置sshd文件,主要修改文件sshd(存放路徑:/etc/pam.d/sshd);
auth sufficient pam_winbind.so
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account sufficient pam_winbind.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
session required pam_stack.so service=system-auth
session required pam_limits.so
session required pam_mkhomedir.so
session optional pam_console.so
H、 完成 NSS伺服器、kerberos伺服器、Samba伺服器配置工作后,重新啟動操作系統;
1、# service smb restart
2、# service winbind restart
3、# reboot
I、 使用下列命令將Samba 加入到 Active Directory 域伺服器,成為域成員伺服器;
1、# kinit administrator@NSEASY.NET(使用kinit命令,初始化administrator域帳號和密碼)
2、# net ads join -U administrator@NSEASY.NET(將Samba加入Active Directory域)
3、# wbinfo -t、# wbinfo -g、# wbinfo -u(使用wbinfo命令測試伺服器連接、域組、域帳戶情況)
4、# getent passwd # getent group(使用getent命令查詢帳號的密碼資料)
5、# net ads info、net getdomainsid(使用net命令進行查詢Active Directory域基本資料和ID號碼)
6、# smbclient -L smb.nseasy.net -U fandy(使用smbclient命令,測試域用戶連接Samba伺服器)
7、# ssh fandy@smb.nseasy.net(使用ssh命令,測試域帳戶連接Samba伺服器)
1.自動創建用戶目錄
細心的朋友可能發現從開篇一直到現在除了操作方式不一定以外,所做的事情和<<linux加入windows域之完美方案>>沒有太大的區別。嗯,筆者不置可否,估且這麼理解吧。希望有點小細節您注意到了,在smb.conf中,有一句template shell = /sbin/nologin。是的,samba伺服器,我們只希望他提供samba服務,不希望有用戶登陸。在上一篇文章中解決用戶登陸時主目錄不存在的問題,用的是pam_mkhomedir.so這個東東。在文件共享這塊,筆者意外的發現,這個文件,對於通過samba訪問過來的請求不會創建主目錄!這可如何是好?這就是腳本mkhome.sh存在的原因。
新建立mkhome.sh腳本:
#vi /home/mkhome.sh
#!/bin/bash
user=$1
group=$2
home=/home/$1
if [ ! -d $home ] ; then
mkdir -p $home
chown $user $home
chgrp $group $home
chmod 700 $home
edquota -p administrator -u $user
fi
更改文件許可權設置:
# chmod 700 /home/mkhome.sh
這個腳本接受兩個參數,一個是用戶名,一個是組名。然後給這個用戶創建目錄,並分配許可權,然後再給分配一下用戶空間。Ok,回頭看一下smb.conf文件。
comment = Home Directories
path = /home/%U //共享的目錄
valid users = rainbird.net/%U //認證的用戶,前面必須加rainbird.net喲
read only = No
browseable = No
root preexec = /root/mkhome.sh %U %G //執行創建目錄的操作。
這段配置中最帥的就是這個mkhome.sh的存在。因為這個腳本的執行者是root,所以我們腳本的許可權設置700即可。再往下我們將繼續探索它的神奇魔力。寫完這段保存一下,重啟smb:service smb restart。這樣,在一台xp的機器上,用域用戶登陸,然後訪問\\192.168.1.246,是不是看到了一個以你登陸的域用戶名命名的一個文件夾呢?沒錯,就是它!你現在可以試下刪寫文件了。怎麼有問題?有問題就自己檢查一下,為什麼吧