我正在尝试使用 Python 模块管理 OpenLDAP 目录中用户的组成员身份ldap3
。删除操作的文档展示如何从中删除用户OU
,但我只是想删除组对象memberUid
中的条目POSIX
以及对象member
中的条目groupOfName
。
我尝试使用c.delete()
呼叫来执行此操作,但没有成功。还有其他方法吗?
我的组对象如下所示:
dn: cn=sales,ou=groups,dc=mycorp,dc=net
cn: sales
gidNumber: 12009
objectClass: posixGroup
objectClass: top
memberUid: milton
memberUid: trebor
memberUid: yggdrasil
我能想到的唯一咒语(显然是错误的)是:
conn.delete ('memberUid=milton,cn=sales,ou=groups,dc=mycorp,dc=net')
结果是:
ldap3.core.exceptions.LDAPNoSuchObjectResult: LDAPNoSuchObjectResult - 32 - noSuchObject - cn=sales,ou=groups,dc=mycorp,dc=net - None - delResponse - None
答案1
以防它能帮助别人,conn.delete
我不必使用modify
带有MODIFY_DELETE
操作的方法,同时指向要删除的DN
具有memberUid
属性和成员的组。
result = conn.modify("cn=sales,ou=groups,dc=mycorp,dc=net", {'memberUid': [(MODIFY_DELETE, ['milton'])]})