将ubuntu配置為通過ldap認證,使其成為ldap client,本文實驗環境為ubuntu 12.04。
[size=large]一、手工配置方式[/size]
1、軟體安裝:
apt-get install ldap-utils libpam-ldap libnss-ldap nslcd
安裝過程中提示填寫ldap相關資訊:ldap server 位址,base dc等,資訊儲存在/etc/ldap.conf中,可通過dpkg-reconfigure ldap-auth-config重新配置,其中:
[list]
[*]ldap服務uri格式 ldap://ldapServerIP/
[*]search base:dc=my,dc=com,dc=cn
[*]root ldap account:cn=admin,dc=my,dc=com,dc=cn
[/list]
2、認證方式中添加ldap:
[email protected]:~# auth-client-config -t nss -p lac_ldap
3、使認證通過後自動建立使用者家目錄:
vi /etc/pam.d/common-session,追加内容:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
4、配置開啟ldap認證方式
[email protected]:~# pam-auth-update
5、執行
update-rc.d nslcd enable
6、配置可在本機通過passwd更改使用者密碼:
vi /etc/pam.d/common-password,除去其中的use_authtok參數
7、重新開機相關服務:
/etc/init.d/nscd restart
8、登陸或切換使用者時即通過ldap進行認證,如切換為ldap中的使用者manager:
參見http://askubuntu.com/questions/127389/how-to-configure-ubuntu-as-an-ldap-client
[size=large]二、腳本配置方式[/size]
如果需配置的機器很多,采用手工配置方式不太合适,可在待配置機器上運作如下shell腳本進行自動化配置:
#!/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