整
合moodle、joomla及phpBB
帳號及密碼,有很多方式,如系統內建的PAM驗證模式、samba的帳密驗證模式、Kerberos驗證模式、SASL
驗証模式及LDAP整合驗證,不過被指定使用LDAP,只好來試試。不過,towns 對 LDAP並不是很熟悉,可能得花一段時間來處理了 = =
LDAP(Lightweight Directory Access Protocol;輕量級目錄存取協定),towns看了一些關於LDAP的一些文件,他比較像是做通訊錄的套件,就像DNS或圖書館目錄一樣,而他的難 度看來是他的指令使用、樹狀結構格式。而與其他程式整合,就是得依格式寫入。目前多數主流系統(軟體),都有提供LDAP驗證模式,如moodle、 joomla及phpBB 皆有支援LDAP驗證模式,所以towns只需要確認LDAP server 是否能正常運作就行了 ^^
零:使用系統
CentOS 6.3
一、安裝 openldap套件
依哆啦胖虎大的文章說明來安裝以下兩個套件
openldap-clients、openldap-servers
設定檔路徑:/etc/openldap/,資料檔路徑:/var/lib/ldap/
註1:安裝完成後,並沒有slapd.conf,不過,查看openldap-servers,卻說有slapd.conf,奇怪了,不過,有sample檔放在/usr/share/openldap-servers/中,需自己cp過去
註2:在執行slapadd -v -l /etc/openldap/root-unit.ldif 時,slapd服務 必需是停止的
二、規劃完整LDAP組織圖
這裡會說明一些LDAP的設計方式及表示法
LDAP架構圖
DIT(Directory Information Tree;目錄資訊樹)
DC(Domain Country;區域網域)
OU(Organization Unit;組織單位)
CN(Common Name;使用者名稱)
DN(Distinguish Name;識別名稱)
表示法
表示出towns在LDAP的唯一識別名稱(DN)
cn=towns, cn=mis, cn=unit, cn=company, dn=test, dn=idv, dn=tw
LDAP的識別方式與DNS類似,由小排大
這個部分依照需求設定的,哆啦胖虎大的設定為一個通用的設定哦!
詳細教學:
子儀大的文章 http://www.l-penguin.idv.tw/article/ldap-1.htm
官方說明文件 http://www.openldap.org/doc/admin24/quickstart.html
哆啦胖虎的文章 http://iori.tw/ldap%E5%9F%BA%E6%9C%AC%E5%AE%89%E8%A3%9D%E5%8F%8A%E6%95%B4%E5%90%88%E7%99%BB%E5%85%A5%E8%AA%8D%E8%AD%89%E6%A9%9F%E5%88%B6%E7%9A%84%E6%9E%B6%E8%A8%AD-on-centos-6-2_x64/
文章中有詳細的說明
不自量力大的文章 http://www.weithenn.org/cgi-bin/wiki.pl?OpenLDAP-LDAP_Server_%E5%9F%BA%E7%A4%8E%E8%A8%AD%E5%AE%9A
關於在CentOS 6 以上的版本安裝Openldap發生的驗證錯誤問題要先將 /etc/openldap/slapd.d/* 刪除後,才能由其他主機登入,否則會一直發生驗證錯誤的問題
資料來源:哆啦胖虎大的文章
伺服器架設及測試
資質平庸的 towns 陸陸續續玩了半年之後,總算達成了第一階段目標,Client端主機終於可以使用LDAP驗證了,以下會說明流程及towns的遇到的問題
0. 系統說明
OS:CentOS 6.4
OpenLDAP:openldap-servers-2.4.23(RPM)
1. 安裝openldap server端程式
yum intall openldap-servers opendap-clients
註1:client 端只需安裝 openldap-clients
註2:server 端安裝 openldap-clients 只是為了取得一些指令,我們當然也可以直接在client 端做測試
2. 複製範例檔(slapd.conf與DB_CONFIG)到指定目錄
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
3. 設定LDAP管理者密碼
slappasswd -h {MD5} -s abc123 <== 設定密碼為abc123,並指定使用MD5加密
{MD5} **************************
vi /etc/openldap/slapd.conf
註:也可用只打slappasswd 互動方式產生密碼,預設使用 SSHA 加密
4. 修改LDAP設定檔(slapd.conf)
vi slapd.conf
找出以下三行,並設定資料,資料就是上方的 LDAP組織圖
suffix "dc=test,dc=idv,dc=tw"
rootdn "cn=Manager,dc=test,dc=idv,dc=tw"
rootpw {MD5} **************************
註:如需變更slapd.conf內容,必需這麼做
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d
service slapd restart
5. 建立根資料(root-unit.ldif),格式嚴謹,冒號後一個空格,每個Section設定結束多空一列表,其內容依照LDAP組織圖製作
vi root-unit.ldif
註:組織圖是否要做的這麼長,這個可以依管理者決定,也可以只做兩層 node、top
6. 刪除預設的組織結構
rm -rf /etc/openldap/slapd.d/*
註:towns在這裡卡了非常久,因為towns參照新舊資料造成 client 端登入一直出現 驗證錯誤 的問題
7. 建立新定義的root-unit.ldif
slapadd -v -l /[檔案路徑]/root-unit.ldif
註:在建立過程,需看到一些added 的動作才是正常,如果沒出現,確認root-unit.ldif格式是否有打錯
8. 將LDAP 新的資料庫內容產生結構檔案到slapd.d 的目錄
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
註:在openldap-servers-2.4以前的版本,並沒有這一段,這也是造成towns一直卡住的地方
9. 改變目錄擁有權
chown -R ldap:ldap /var/lib/ldap
chown -R ldap:ldap /etc/openldap/slapd.d
10. 啟動並設定開機啟動
service slapd start
chkconfig slapd on
到這一步驟,ldap-server已經建立完成
11. 測試LDAP server是否正常
ldapsearch -x -b "dc=test,dc=idv,dc=tw"
在正常情形下,應該要列出剛剛建立的 root-unit.ldif 結構資料
12. 於 client 建立測試人員名冊(test.ldif...)與建立root-unit.ldif 一樣,語法嚴格
在這個部分,towns要建立一個可以登入的帳號,但LDAP的資料架構與OS的不同,必需利用對照表來設計。OS在登入時,主要由三個檔案來對照/etc/passwd、/etc/shadow及/etc/group,以下一一對應
/etc/passwd 結構
towns:x:501:501::/home/towns:/bin/bash
id:password:uid:gid:full_name:Home Directory:Login shell
passwd <==> poxisAccount 對照表
/etc/shadow 結構
towns:!!:15818::::::
username:passwd:last:may:must:warn:expire:disable:reserved
shadow <==> shadowAccount 對照表
/etc/group 結構
towns:x:500:
group name:password:group id:other account
shadow <==> posixGroup 對照表
建立test.ldif檔
密碼一樣使用slappasswd產生
註:這個程式是由openldap-servers產生的,如果Client端沒有安裝,就沒有這支程式了
13. 於Client 端加入使用者
ldapadd -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] -f test.ldif
14. 於Cliet 端測試
14.1. 搜尋LDAP資料
ldapsearch -x <== 匿名搜尋
ldapsearch -x "uid=towns" <== 搜尋towns帳號資訊
14.2. Client登入
設定主機使用LDAP
setup ==> Authentication configuration(認證設定) ==> User Information 勾選 Use LDAP,Authentication 加選 Use LDAP Authentication ==> LDAP Settings,寫入 Server(ip或domain),寫入Base DN
使用towns帳號登入系統,確認是否正常
註1:TLS的部分,towns並沒有勾,目前towns並沒有啟用加密傳輸
註2:Client端登入後,使用者會因為沒有家目錄,而出現無路徑情形
到目前為止,Client 端已經可以正常登入LDAP server了
接下來的問題
1. client端登入後,無法自行變更密碼
2. clinet端登入後,沒有家目錄
3. windows 連結 LDAP
4. moodle、joomla及phpBB使用LDAP驗證
5. e-mail 帳密 連結 LDAP
資料來源:
哆啦胖虎大的文章
范老師上課資料
資料備份當使用者帳號非常多時,備份就是一個重要動作了(就算帳號不多也要做啦 ^^)
1. 匯出資料
slapcat -n 2 > ldap.ldif <== 將LDAP的資料庫資料匯出到ldap.ldif檔
註:在CenetOS6,openldap-servers-2.4以上版本,第一個db是不能匯出的,必需下 -n 2的參數
2. 匯入(重建)資料
2.1. 刪除/var/lib/ldap/*
2.2. cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
2.3. slapadd -v -l ldap.ldif
2.4. ll /var/lib/ldap
2.5. chkown -R ldap:ldap /var/lib/ldap
2.6. service slapd restart
註:2.3為匯入的重點步驟,其他是重建檔案及重新啟動
范老師上課資料
使用者變更密碼
openldap-servers-2.4以前的版本,只需要在slapd.conf加上這一段段,就可以讓使用者在client端自行變更密碼
access to attrs=userPassword
by self write
by * auth
access to *
by * read但2.4版以上,這方式就不行了
關於OpenLDAP的屬性
towns 在看資料時,一直不懂 objectClass 這個的用意是什麼,看了一下網路的說明,才知道指的是“attribute(屬性)”,而 objectClass 只是其中一種 = =,但說了,towns還是看不懂,也不知道在建立ldif檔時檔案中 objectClass: posixAccount 的用途,不過,有幾個有關連性哦!
objectClass: posixAccount ==> 這個是 password對照表的名子
objectClass: shadowAccount ==> 這個是shadow對照表的名子
objectClass: account ==> 這個是??
由towns粗淺的判斷,似乎是在宣告該檔案(*.ldif)的用途
objectClass: posixAccount 表示內容含password檔案格式
objectClass: shadowAccount 表示內容含shadow檔案格式
objectClass: account 表示,這是個帳號檔案
相關資料:資料中有詳細的說明,但,都是英文的 = =
http://oav.net/mirrors/LDAP-ObjectClasses.html
http://www.zytrax.com/books/ldap/ape/
OpenLDAP 指令使用(server 端)
slapadd <== 在伺服器端加入資料(可加入使用者、根結構)
例1:slapadd -v -l test.ldif <== 使用檔案加入使用者
註:使用此指令,LDAP服務必需是停止的
slapacl <== 列出各項屬性的存取權限
例:slapacl -b "ou=login,dc=test,dc=idv,dc=tw"
詳細說明:http://www.openldap.org/doc/admin24/access-control.html
slapauth <== 依照 SASL資料核對DIT
slapcat <== 列出目前DIT結構(這個指令與 ldapsearch -x 蠻類似的)
例:slapcat -v
slapd
slapdn
slapindex
slappasswd
slapschema
slaptest <== 核對適合的slapd.conf檔及建立結構檔到 /slapd.d/
例1:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d <== 核對並建立結構檔案
例2:slaptest -f /etc/openldap/slapd.conf <== 單純測試設定檔
資料來源:
哆啦胖虎大的文章
范老師上課資料
OpenLDAP 指令使用(Client 端)
ldapadd <== 加入伺服器端的資料
例1:ldapadd -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] -f test.ldif <==使用檔案方式加入資料
例2:ldapadd -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -W <== 使用互動方式加入資料。這個就是手動建立ldif檔,而這種互動方式,是給其他連接LDAP的系統使用為主
1. 先要求打入管理者密碼
2. 打入 DN、attribute等相關資料,打完後按兩下 Ctrl + D離開
ldapdelete <== 刪除伺服器端的資料
例 1:ldapdelete -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] "uid=towns,ou=login,dc=test,dc=idv,dc=tw" <== 刪除dc=test,dc=idv,dc=tw中towns的資料
ldapmodrdn <== 修改使用者的DN資料,這樣的做法有點像是同一個使用者有兩個名稱,但實際DN 的UID 是改為 bob 哦!但兩個帳號都可以登入
例1:ldapmodrdn -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] "uid=towns,ou=login,dc=test,dc=idv,dc=tw" "uid=bob"
ldappasswd <== 修改使用者密碼,會互動式的跳出重建密碼
例1:ldappasswd -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] - S "uid=towns,ou=login,dc=test,dc=idv,dc=tw"
例2:ldappasswd -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] - s "uid=towns,ou=login,dc=test,dc=idv,dc=tw" [使用者密碼]
本來想這樣應該可以,沒想到卻出現了錯誤 "Additional info: Invalid DN"
ldapmodify <== 使用標準輸入或LDIF檔案方式修改使用者資料
例1:ldapmodify -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] -f test.ldif <==使用檔案方式修改資料
ldapsearch <== 查詢主機資料
例1:ldapsearch -x <== 匿名搜尋(這個可列出LDAP中的資料,不過,可以列出就是有風險哦!)
例2:ldapsearch -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼]
例3:ldapsearch -x -D "uid=towns,ou=login,dc=test,dc=idv,dc=tw" -w [使用者密碼]
例4:ldapsearch -x -b "ou=login,dc=test,dc=idv,dc=tw" <== 從login 節點開始搜尋
例5:ldapsearch -x "uid=towns" <== 搜尋towns的資訊
ldapcompare <== 資料比對功能,這個可能與LDAP主機合併時比較有用
ldapwhoami <== 我是誰 ^0^,怎麼看來沒什麼用,如果知道DN,就一定知道是誰啊
例:ldapwhoami -x <== 回應為 anonymous
註1:所有client 端的指令,使用方式都差不多,而最主要的功能就是修改 LDIF 的資料
註2:參數x,是指簡易驗證
資料來源:
國外的說明文章 http://www.zytrax.com/books/ldap/ch14/
范老師上課資料
OpenLDAP msn 實在是看不懂 = =
名詞說明
LDIF ==> LDAP Interchange Format ; LDAP交換檔格式
stdin ==> standard input
stdout ==> standard output
stderr ==> standard error
資料來源:
OpenLDAP man stdin
LDAP(Lightweight Directory Access Protocol;輕量級目錄存取協定),towns看了一些關於LDAP的一些文件,他比較像是做通訊錄的套件,就像DNS或圖書館目錄一樣,而他的難 度看來是他的指令使用、樹狀結構格式。而與其他程式整合,就是得依格式寫入。目前多數主流系統(軟體),都有提供LDAP驗證模式,如moodle、 joomla及phpBB 皆有支援LDAP驗證模式,所以towns只需要確認LDAP server 是否能正常運作就行了 ^^
零:使用系統
CentOS 6.3
一、安裝 openldap套件
依哆啦胖虎大的文章說明來安裝以下兩個套件
openldap-clients、openldap-servers
設定檔路徑:/etc/openldap/,資料檔路徑:/var/lib/ldap/
註1:安裝完成後,並沒有slapd.conf,不過,查看openldap-servers,卻說有slapd.conf,奇怪了,不過,有sample檔放在/usr/share/openldap-servers/中,需自己cp過去
註2:在執行slapadd -v -l /etc/openldap/root-unit.ldif 時,slapd服務 必需是停止的
二、規劃完整LDAP組織圖
這裡會說明一些LDAP的設計方式及表示法
LDAP架構圖
DIT(Directory Information Tree;目錄資訊樹)
DC(Domain Country;區域網域)
OU(Organization Unit;組織單位)
CN(Common Name;使用者名稱)
DN(Distinguish Name;識別名稱)
表示法
表示出towns在LDAP的唯一識別名稱(DN)
cn=towns, cn=mis, cn=unit, cn=company, dn=test, dn=idv, dn=tw
LDAP的識別方式與DNS類似,由小排大
這個部分依照需求設定的,哆啦胖虎大的設定為一個通用的設定哦!
詳細教學:
子儀大的文章 http://www.l-penguin.idv.tw/article/ldap-1.htm
官方說明文件 http://www.openldap.org/doc/admin24/quickstart.html
哆啦胖虎的文章 http://iori.tw/ldap%E5%9F%BA%E6%9C%AC%E5%AE%89%E8%A3%9D%E5%8F%8A%E6%95%B4%E5%90%88%E7%99%BB%E5%85%A5%E8%AA%8D%E8%AD%89%E6%A9%9F%E5%88%B6%E7%9A%84%E6%9E%B6%E8%A8%AD-on-centos-6-2_x64/
文章中有詳細的說明
不自量力大的文章 http://www.weithenn.org/cgi-bin/wiki.pl?OpenLDAP-LDAP_Server_%E5%9F%BA%E7%A4%8E%E8%A8%AD%E5%AE%9A
關於在CentOS 6 以上的版本安裝Openldap發生的驗證錯誤問題要先將 /etc/openldap/slapd.d/* 刪除後,才能由其他主機登入,否則會一直發生驗證錯誤的問題
資料來源:哆啦胖虎大的文章
伺服器架設及測試
資質平庸的 towns 陸陸續續玩了半年之後,總算達成了第一階段目標,Client端主機終於可以使用LDAP驗證了,以下會說明流程及towns的遇到的問題
0. 系統說明
OS:CentOS 6.4
OpenLDAP:openldap-servers-2.4.23(RPM)
1. 安裝openldap server端程式
yum intall openldap-servers opendap-clients
註1:client 端只需安裝 openldap-clients
註2:server 端安裝 openldap-clients 只是為了取得一些指令,我們當然也可以直接在client 端做測試
2. 複製範例檔(slapd.conf與DB_CONFIG)到指定目錄
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
3. 設定LDAP管理者密碼
slappasswd -h {MD5} -s abc123 <== 設定密碼為abc123,並指定使用MD5加密
{MD5} **************************
vi /etc/openldap/slapd.conf
註:也可用只打slappasswd 互動方式產生密碼,預設使用 SSHA 加密
4. 修改LDAP設定檔(slapd.conf)
vi slapd.conf
找出以下三行,並設定資料,資料就是上方的 LDAP組織圖
suffix "dc=test,dc=idv,dc=tw"
rootdn "cn=Manager,dc=test,dc=idv,dc=tw"
rootpw {MD5} **************************
註:如需變更slapd.conf內容,必需這麼做
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d
service slapd restart
5. 建立根資料(root-unit.ldif),格式嚴謹,冒號後一個空格,每個Section設定結束多空一列表,其內容依照LDAP組織圖製作
vi root-unit.ldif
註:組織圖是否要做的這麼長,這個可以依管理者決定,也可以只做兩層 node、top
6. 刪除預設的組織結構
rm -rf /etc/openldap/slapd.d/*
註:towns在這裡卡了非常久,因為towns參照新舊資料造成 client 端登入一直出現 驗證錯誤 的問題
7. 建立新定義的root-unit.ldif
slapadd -v -l /[檔案路徑]/root-unit.ldif
註:在建立過程,需看到一些added 的動作才是正常,如果沒出現,確認root-unit.ldif格式是否有打錯
8. 將LDAP 新的資料庫內容產生結構檔案到slapd.d 的目錄
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
註:在openldap-servers-2.4以前的版本,並沒有這一段,這也是造成towns一直卡住的地方
9. 改變目錄擁有權
chown -R ldap:ldap /var/lib/ldap
chown -R ldap:ldap /etc/openldap/slapd.d
10. 啟動並設定開機啟動
service slapd start
chkconfig slapd on
到這一步驟,ldap-server已經建立完成
11. 測試LDAP server是否正常
ldapsearch -x -b "dc=test,dc=idv,dc=tw"
在正常情形下,應該要列出剛剛建立的 root-unit.ldif 結構資料
12. 於 client 建立測試人員名冊(test.ldif...)與建立root-unit.ldif 一樣,語法嚴格
在這個部分,towns要建立一個可以登入的帳號,但LDAP的資料架構與OS的不同,必需利用對照表來設計。OS在登入時,主要由三個檔案來對照/etc/passwd、/etc/shadow及/etc/group,以下一一對應
/etc/passwd 結構
towns:x:501:501::/home/towns:/bin/bash
id:password:uid:gid:full_name:Home Directory:Login shell
passwd <==> poxisAccount 對照表
/etc/shadow 結構
towns:!!:15818::::::
username:passwd:last:may:must:warn:expire:disable:reserved
shadow <==> shadowAccount 對照表
/etc/group 結構
towns:x:500:
group name:password:group id:other account
shadow <==> posixGroup 對照表
建立test.ldif檔
密碼一樣使用slappasswd產生
註:這個程式是由openldap-servers產生的,如果Client端沒有安裝,就沒有這支程式了
13. 於Client 端加入使用者
ldapadd -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] -f test.ldif
14. 於Cliet 端測試
14.1. 搜尋LDAP資料
ldapsearch -x <== 匿名搜尋
ldapsearch -x "uid=towns" <== 搜尋towns帳號資訊
14.2. Client登入
設定主機使用LDAP
setup ==> Authentication configuration(認證設定) ==> User Information 勾選 Use LDAP,Authentication 加選 Use LDAP Authentication ==> LDAP Settings,寫入 Server(ip或domain),寫入Base DN
使用towns帳號登入系統,確認是否正常
註1:TLS的部分,towns並沒有勾,目前towns並沒有啟用加密傳輸
註2:Client端登入後,使用者會因為沒有家目錄,而出現無路徑情形
到目前為止,Client 端已經可以正常登入LDAP server了
接下來的問題
1. client端登入後,無法自行變更密碼
2. clinet端登入後,沒有家目錄
3. windows 連結 LDAP
4. moodle、joomla及phpBB使用LDAP驗證
5. e-mail 帳密 連結 LDAP
資料來源:
哆啦胖虎大的文章
范老師上課資料
資料備份當使用者帳號非常多時,備份就是一個重要動作了(就算帳號不多也要做啦 ^^)
1. 匯出資料
slapcat -n 2 > ldap.ldif <== 將LDAP的資料庫資料匯出到ldap.ldif檔
註:在CenetOS6,openldap-servers-2.4以上版本,第一個db是不能匯出的,必需下 -n 2的參數
2. 匯入(重建)資料
2.1. 刪除/var/lib/ldap/*
2.2. cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
2.3. slapadd -v -l ldap.ldif
2.4. ll /var/lib/ldap
2.5. chkown -R ldap:ldap /var/lib/ldap
2.6. service slapd restart
註:2.3為匯入的重點步驟,其他是重建檔案及重新啟動
范老師上課資料
使用者變更密碼
openldap-servers-2.4以前的版本,只需要在slapd.conf加上這一段段,就可以讓使用者在client端自行變更密碼
access to attrs=userPassword
by self write
by * auth
access to *
by * read但2.4版以上,這方式就不行了
關於OpenLDAP的屬性
towns 在看資料時,一直不懂 objectClass 這個的用意是什麼,看了一下網路的說明,才知道指的是“attribute(屬性)”,而 objectClass 只是其中一種 = =,但說了,towns還是看不懂,也不知道在建立ldif檔時檔案中 objectClass: posixAccount 的用途,不過,有幾個有關連性哦!
objectClass: posixAccount ==> 這個是 password對照表的名子
objectClass: shadowAccount ==> 這個是shadow對照表的名子
objectClass: account ==> 這個是??
由towns粗淺的判斷,似乎是在宣告該檔案(*.ldif)的用途
objectClass: posixAccount 表示內容含password檔案格式
objectClass: shadowAccount 表示內容含shadow檔案格式
objectClass: account 表示,這是個帳號檔案
相關資料:資料中有詳細的說明,但,都是英文的 = =
http://oav.net/mirrors/LDAP-ObjectClasses.html
http://www.zytrax.com/books/ldap/ape/
OpenLDAP 指令使用(server 端)
slapadd <== 在伺服器端加入資料(可加入使用者、根結構)
例1:slapadd -v -l test.ldif <== 使用檔案加入使用者
註:使用此指令,LDAP服務必需是停止的
slapacl <== 列出各項屬性的存取權限
例:slapacl -b "ou=login,dc=test,dc=idv,dc=tw"
詳細說明:http://www.openldap.org/doc/admin24/access-control.html
slapauth <== 依照 SASL資料核對DIT
slapcat <== 列出目前DIT結構(這個指令與 ldapsearch -x 蠻類似的)
例:slapcat -v
slapd
slapdn
slapindex
slappasswd
slapschema
slaptest <== 核對適合的slapd.conf檔及建立結構檔到 /slapd.d/
例1:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d <== 核對並建立結構檔案
例2:slaptest -f /etc/openldap/slapd.conf <== 單純測試設定檔
資料來源:
哆啦胖虎大的文章
范老師上課資料
OpenLDAP 指令使用(Client 端)
ldapadd <== 加入伺服器端的資料
例1:ldapadd -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] -f test.ldif <==使用檔案方式加入資料
例2:ldapadd -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -W <== 使用互動方式加入資料。這個就是手動建立ldif檔,而這種互動方式,是給其他連接LDAP的系統使用為主
1. 先要求打入管理者密碼
2. 打入 DN、attribute等相關資料,打完後按兩下 Ctrl + D離開
ldapdelete <== 刪除伺服器端的資料
例 1:ldapdelete -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] "uid=towns,ou=login,dc=test,dc=idv,dc=tw" <== 刪除dc=test,dc=idv,dc=tw中towns的資料
ldapmodrdn <== 修改使用者的DN資料,這樣的做法有點像是同一個使用者有兩個名稱,但實際DN 的UID 是改為 bob 哦!但兩個帳號都可以登入
例1:ldapmodrdn -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] "uid=towns,ou=login,dc=test,dc=idv,dc=tw" "uid=bob"
ldappasswd <== 修改使用者密碼,會互動式的跳出重建密碼
例1:ldappasswd -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] - S "uid=towns,ou=login,dc=test,dc=idv,dc=tw"
例2:ldappasswd -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] - s "uid=towns,ou=login,dc=test,dc=idv,dc=tw" [使用者密碼]
本來想這樣應該可以,沒想到卻出現了錯誤 "Additional info: Invalid DN"
ldapmodify <== 使用標準輸入或LDIF檔案方式修改使用者資料
例1:ldapmodify -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼] -f test.ldif <==使用檔案方式修改資料
ldapsearch <== 查詢主機資料
例1:ldapsearch -x <== 匿名搜尋(這個可列出LDAP中的資料,不過,可以列出就是有風險哦!)
例2:ldapsearch -x -D "cn=Manager,dc=test,dc=idv,dc=tw" -w [管理者密碼]
例3:ldapsearch -x -D "uid=towns,ou=login,dc=test,dc=idv,dc=tw" -w [使用者密碼]
例4:ldapsearch -x -b "ou=login,dc=test,dc=idv,dc=tw" <== 從login 節點開始搜尋
例5:ldapsearch -x "uid=towns" <== 搜尋towns的資訊
ldapcompare <== 資料比對功能,這個可能與LDAP主機合併時比較有用
ldapwhoami <== 我是誰 ^0^,怎麼看來沒什麼用,如果知道DN,就一定知道是誰啊
例:ldapwhoami -x <== 回應為 anonymous
註1:所有client 端的指令,使用方式都差不多,而最主要的功能就是修改 LDIF 的資料
註2:參數x,是指簡易驗證
資料來源:
國外的說明文章 http://www.zytrax.com/books/ldap/ch14/
范老師上課資料
OpenLDAP msn 實在是看不懂 = =
名詞說明
LDIF ==> LDAP Interchange Format ; LDAP交換檔格式
stdin ==> standard input
stdout ==> standard output
stderr ==> standard error
資料來源:
OpenLDAP man stdin
沒有留言:
張貼留言