OpenLDAP 提供一系列的工具,用來管理 LDAP 目錄中的資料。以下說明四種最重要的工具,分別用來新增、刪除、搜尋和修改資料集。
LDAP 伺服器 /etc/openldap/slapd.conf
中的組態正確並且就緒之後 (即擁有正確的 suffix
、directory
、rootdn
、rootpw
和 index
項目),即可開始輸入記錄。OpenLDAP 為此項任務提供了 ldapadd 指令。如果可能,請以套裝方式將多個物件一次加入資料庫,這是較實用的作法。LDAP 處理 LDIF 格式 (LDAP 資料互換格式) 的能力可在此時發揮作用。LDIF 是一個簡單的文字檔,可包含任意數量的屬性與值的組合。如需可用物件類別和屬性的相關資訊,請參閱 slapd.conf
中宣告的綱要檔。在 圖形 36.1 「LDAP 目錄結構」 中用來建立概略架構的 LDIF 檔會和 範例 36.7 「LDIF 檔案範例」 中的檔案相似。
範例 36.7. LDIF 檔案範例
# The Organization dn: dc=example,dc=com objectClass: dcObject objectClass: organization o: Example dc: example # The organizational unit development (devel) dn: ou=devel,dc=example,dc=com objectClass: organizationalUnit ou: devel # The organizational unit documentation (doc) dn: ou=doc,dc=example,dc=com objectClass: organizationalUnit ou: doc # The organizational unit internal IT (it) dn: ou=it,dc=example,dc=com objectClass: organizationalUnit ou: it
![]() | LDIF 檔的編碼 |
---|---|
LDAP 可使用 UTF-8 (Unicode)。母音字元的編碼必須正確。請使用支援 UTF-8 的編輯器,例如 Kate 或最新版的 Emacs。否則,應避免母音字元和其他特殊字元,或使用 recode 將輸入重新編碼為 UTF-8。 |
儲存字尾為 .ldif
的檔案,然後用下列指令傳送給伺服器。
ldapadd -x -D <dn of the administrator> -W -f <file>.ldif
-x
在此例中會關閉 SASL 驗證。-D
會宣告呼叫此作業的使用者。在此處輸入管理員的有效 DN,如同 slapd.conf
中的設定一樣。在此範例中,有效 DN 為 cn=Administrator,dc=example,dc=com
。-W
可避免將密碼輸入指令行 (以純文字) 並啟用單獨的密碼提示。此密碼是先前在 slapd.conf
中使用 rootpw
決定的。-f
會傳送檔案名稱。請參閱 範例 36.8 「ldapadd 和 example.ldif」 中執行 ldapadd 的詳細內容。
範例 36.8. ldapadd 和 example.ldif
ldapadd -x -D cn=Administrator,dc=example,dc=com -W -f example.ldif Enter LDAP password: adding new entry "dc=example,dc=com" adding new entry "ou=devel,dc=example,dc=com" adding new entry "ou=doc,dc=example,dc=com" adding new entry "ou=it,dc=example,dc=com"
個別的使用者資料可建立在不同的 LDIF 檔。範例 36.9 「Tux 的LDIF 資料」 會新增 Tux
至新的 LDAP 目錄。
範例 36.9. Tux 的LDIF 資料
# coworker Tux dn: cn=Tux Linux,ou=devel,dc=example,dc=com objectClass: inetOrgPerson cn: Tux Linux givenName: Tux sn: Linux mail: tux@example.com uid: tux telephoneNumber: +49 1234 567-8
LDIF 檔可包含任意數量的物件。既可以將整個目錄分支一次性傳給伺服器,也可只傳送一部分,如個別物件範例所示。如果需要經常修改某些資料,建議使用單一物件的細分。
工具 ldapmodify 可用來修改資料集。最簡單的修改方法是先修改對應的 LDIF 檔,然後將修改過的檔案傳送給 LDAP 伺服器。如果要將同事 Tux 的電話號碼從 +49 1234 567-8
改為 +49 1234 567-10
,則必須依照 範例 36.10 「修改過的 LDIF 檔 tux.ldif」 中的方式來編輯 LDIF 檔案。
範例 36.10. 修改過的 LDIF 檔 tux.ldif
# coworker Tux dn: cn=Tux Linux,ou=devel,dc=example,dc=com changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10
使用下列指令將修改過的檔案輸入 LDAP 目錄:
ldapmodify -x -D cn=Administrator,dc=example,dc=com -W -f tux.ldif
或者,也可以直接將要修改的屬性傳送給 ldapmodify。此項作業程序描述如下:
啟動 ldapmodify 並輸入您的密碼:
ldapmodify -x -D cn=Administrator,dc=example,dc=com -W Enter LDAP password:
輸入變更並注意是否符合下列語法順序:
dn: cn=Tux Linux,ou=devel,dc=example,dc=com changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10
請在 ldapmodify 線上文件中尋找有關 ldapmodify 及其語法的詳細資訊。
OpenLDAP 提供的指令行工具 ldapsearch,可用來搜尋和讀取 LDAP 目錄中的資料。下列為簡易查詢的語法:
ldapsearch -x -b dc=example,dc=com "(objectClass=*)"
-b
選項決定搜尋基礎 — 用來執行搜尋的目錄樹區段。在目前這個範例中,搜尋基礎為 dc=example,dc=com
。如果要在 LDAP 目錄的次區段中執行更詳細的搜尋 (例如,只在 devel
部門搜尋),可使用 -b
將此區段傳送至 ldapsearch。-x
會要求啟用簡單的驗證。(objectClass=*)
宣告應讀取目錄中的所有物件。在建立一個新的目錄樹後,可使用本指令來確認所有項目都已正確記錄,而且伺服器的回覆也符合需要。請在對應的線上文件 (ldapsearch(1)) 中尋找更多關於使用 ldapsearch 的詳細資訊。