Ldap

如何向現有 LDAP 使用者對象添加新屬性

  • November 9, 2021

我想將郵件屬性添加到現有的 ldap 使用者。我認為,它可以使用 ldapmodify 但不確定如何。我已經手動使用 phpldapadmin Web GUI 完成了這項工作,但我喜歡 100 多個使用者,並且不想為所有人手動執行此操作。

誰能指導我正確的方向。

$ ldapmodify -H ldap://yourhost -D cn=youradmin,dc=your,dc=domain -x -W
( enter password here )
dn: uid=username,ou=people,dc=your,dc=domain
changetype: modify
add: mail
mail: youremailaddress@here.com

首先,我將向您介紹Red Hat Directory Server Administration Guide的B.4 節,以獲取有關如何創建適用於 ldapmodify 的LDIF文件的快速教程。一開始只為幾百個使用者創建條目。該文件將幫助您消除錯誤。一旦您對文件格式感到滿意,您就可以為剩下的 100 人左右創建條目。以下是單個條目的外觀範例:

dn: cn=Joe Smith,dc=example,dc=com
changetype: modify
add: mail
mail: Joe.Smith@example.com

的合法值為changetype:addmodify和。如果使用,則合法修改為、和。第 3.3 節將為您提供所有這些如何工作的範例。delete``modrdn``changetype: modify``add:``delete:``replace:

然後,一旦你編寫了文件,你就有幾種方法可以將它送出到你的 LDAP 伺服器。一種方法是將文件直接提供給ldapmodify命令:

ldapmodify -x -h $LDAP_HOST -D $LDAP_BINDDN -W -f $FILE

-W開關告訴在命令行ldapmodify詢問密碼。$LDAP_BINDDN這意味著您不會在 shell 歷史文件中留下 LDAP 伺服器的密碼。如果您確實想將密碼合併到您的ldapmodify命令中,請改用-w $PASSWORD,。該-f $FILE開關告訴ldapmodify要檢查哪個 LDIF 文件以檢查正在實施的更改。

我實際上不喜歡使用-f $FILE開關。將文件傳遞給ldapmodify需要 100% 確信我已正確寫入該 LDIF 文件。如果我犯了錯誤,ldapmodify將退出而不告訴我我的錯誤。所以,我會使用第二種方法。以我給出的ldapmodify命令為例,但沒有那個-f $FILE開關。如果沒有該開關,ldapmodify則從STDIN. 因此,我可以從我組裝的這個 LDIF 文件中複製兩個或三個條目,然後將它們粘貼到我的 shell 中ldapmodify進行處理。我一次做 2 到 4 個條目,並根據需要即時更正 LDIF 條目。這比將一個完美的 LDIF 文件直接傳遞給 更慢ldapmodify,但比找出我在該文件中的錯字位置要快。

引用自:https://serverfault.com/questions/455621