配置Ubuntu使用ldap認證
將ubuntu配置為通過ldap認證,使其成為ldap client,本文實驗環境為ubuntu 12.04。
一、手工配置方式
1、軟件安裝:
Java代碼
apt-get install ldap-utils libpam-ldap libnss-ldap nslcd
安裝過程中提示填寫ldap相關信息:ldap server 地址,base dc等,信息保存在/etc/ldap.conf中,可通過dpkg-reconfigure ldap-auth-config重新配置,其中:
ldap服務uri格式 ldap://ldapServerIP/
search base:dc=my,dc=com,dc=cn
root ldap account:cn=admin,dc=my,dc=com,dc=cn
2、認證方式中添加ldap:
Java代碼
root@ldapclient:~# auth-client-config -t nss -p lac_ldap
3、使認證通過後自動創建用戶家目錄:
Java代碼
vi /etc/pam.d/common-session,追加內容:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
4、配置開啟ldap認證方式
Java代碼
root@ldapclient:~# pam-auth-update
5、執行
Java代碼
update-rc.d nslcd enable
6、配置可在本機通過passwd更改用戶密碼:
Java代碼
vi /etc/pam.d/common-password,除去其中的use_authtok參數
7、重啟相關服務:
Java代碼
/etc/init.d/nscd restart
8、登陸或切換用戶時即通過ldap進行認證,如切換為ldap中的用戶manager:
Java代碼
user1@ldapclient:~$ su - manager
Password:*****
Creating directory '/home/manager'.
manager@ldapclient:~$
參見http://askubuntu.com/questions/127389/how-to-configure-ubuntu-as-an-ldap-client
二、腳本配置方式
如果需配置的機器很多,采用手工配置方式不太合適,可在待配置機器上運行如下shell腳本進行自動化配置:
C代碼
#!/bin/bash
#--------------------------------------------------------------------------------
#Ldap server地址及base DN
LDAP_SERVER_IP=192.168.1.100
BASE_DN='dc=my,dc=com,dc=cn'
#--------------------------------------------------------------------------------
#創建preseed文件-軟件安裝自應答
touch debconf-ldap-preseed.txt
echo "ldap-auth-config ldap-auth-config/ldapns/ldap-server string ldap://$LDAP_SERVER_IP" >> debconf-ldap-preseed.txt
echo "ldap-auth-config ldap-auth-config/ldapns/base-dn string $BASE_DN" >> debconf-ldap-preseed.txt
echo "ldap-auth-config ldap-auth-config/ldapns/ldap_version select 3" >> debconf-ldap-preseed.txt
echo "ldap-auth-config ldap-auth-config/dbrootlogin boolean false" >> debconf-ldap-preseed.txt
echo "ldap-auth-config ldap-auth-config/dblogin boolean false" >> debconf-ldap-preseed.txt
echo "nslcd nslcd/ldap-uris string ldap://$LDAP_SERVER_IP" >> debconf-ldap-preseed.txt
echo "nslcd nslcd/ldap-base string $BASE_DN" >> debconf-ldap-preseed.txt
cat debconf-ldap-preseed.txt | debconf-set-selections
#安裝ldap client相關軟件
apt-get install -y ldap-utils libpam-ldap libnss-ldap nslcd
#認證方式中添加ldap
auth-client-config -t nss -p lac_ldap
#認證登錄後自動創建用戶家目錄
echo "session required pam_mkhomedir.so skel=/etc/skel umask=0022" >> /etc/pam.d/common-session
#自啟動服務
update-rc.d nslcd enable
#可以在Host上通過passwd更改用戶密碼
cp /etc/pam.d/common-password /etc/pam.d/common-password.bak
sed -i 's/use_authtok//' /etc/pam.d/common-password
#使配置生效
/etc/init.d/nscd restart