如何向現有 LDAP 使用者對象添加新屬性
我想將郵件屬性添加到現有的 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:
、add
、modify
和。如果使用,則合法修改為、和。第 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
,但比找出我在該文件中的錯字位置要快。