Ldap
OpenLDAP:刪除的使用者仍列在組中
我目前正在通過命令行執行 openldap。我添加了使用者 John 並添加了組 devgroup,並將 John 分配到 devgroup 組中。當我通過命令行刪除使用者(John)時
ldapdelete -Y EXTERNAL -H ldapi:/// -D "cn=admin,dc=example,dc=local" "uid=john,dc=example,dc=local"
使用者已離開,但不在先前分配的組成員 (devgroup) 中。
我注意到使用者和組分配的使用者沒有聯繫。基本上我可以在組中添加任何不存在的使用者。有沒有辦法可以將這兩者聯繫起來?
謝謝!
我相信您只是使用該命令刪除使用者,而不是他們從 OU 中刪除的所有條目。據我了解,LDAP 不會像您想的那樣維護與不同對象的連結,而是希望您
ldapsearch
首先生成對象列表,然後使用ldapdelete
或對其進行操作ldapmodify
。我們通常會先將結果寫入
ldapsearch
文件.ldif
,然後使用ldapmodify
or對它們進行操作ldapdelete
。但是,您可以解析輸出ldapsearch
並將其傳輸ldapmodify
到此 U&L Q&A 中的範例所示,標題為:ldapdelete,想要刪除人員 OU 的所有 UID,但保留 OU?.$ ldapsearch -ZZ -W -D 'cn=Manager,dc=site,dc=fake' \ -b 'ou=people,dc=site,dc=fake' -s one dn | \ grep dn: | cut -b 5- | ldapdelete -ZZ -W -D 'cn=Manager,dc=site,dc=fake'
我相信您需要做類似的事情,找到使用者所屬的所有組
memberUid
,然後將該列表傳遞給ldapmodify
,然後在將ldapdelete
它們從所有組中刪除後執行您的命令。順便從組中刪除使用者:
dn: cn=Manager,dc=site,dc=fake changetype: modify delete: memberuid memberuid: john
關於
.ldif
文件,此頁面上標題為:使用輕量級目錄訪問協議 (LDAP) 管理使用者的範例非常出色。它們展示瞭如何使用片段來執行所有基本操作,.ldif
這些片段可以擴展為跨多個對象執行操作。