Ldap

OpenLDAP:刪除的使用者仍列在組中

  • August 14, 2018

我目前正在通過命令行執行 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,然後使用ldapmodifyor對它們進行操作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這些片段可以擴展為跨多個對象執行操作。

引用自:https://unix.stackexchange.com/questions/462477