我在运行 Debian stretch 的 OpenLDAP 服务器中创建了一个组织 (o=otherorg,dc=example,dc=com)。现在我想删除它,但我尝试过的任何工具都不允许我这样做。下面是一段 slapcat 输出,我想删除我尝试过的“dn: o=otherorg,dc=example,dc=com”条目:
ldapdelete -x -W -D "cn=admin,dc=example,dc=com" "o=otherorg,dc=example,dc=com"
我创建了一个名为 delete.ldif 的文件,其中包含:
dn: o=otherorg,dc=example,dc=com
changetype: delete
并运行:
ldapmodify -Y EXTERNAL -H ldapi:/// -f /path/to/delete.ldiff
全部失败
dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: example.com
dc: example
structuralObjectClass: organization
entryUUID: 99585550-02ab-1038-9dc9-000000000000
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 19700101164420Z
entryCSN: 19700101164420.615825Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 19700101164420Z
contextCSN: 19700101173944.872394Z#000000#000#000000
contextCSN: 19700101173733.720551Z#000000#001#000000
dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
structuralObjectClass: organizationalRole
creatorsName: cn=admin,dc=example,dc=com
userPassword:: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
entryUUID: 995956ee-02ab-1038-9dca-000000000000
createTimestamp: 19700101164420Z
entryCSN: 19700101164420.622825Z#000000#000#000000
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 19700101164420Z
dn: o=otherorg,dc=example,dc=com
entryUUID: 7a6cd5be-02b3-1038-8346-000000000000
creatorsName: cn=admin,dc=example,dc=com
createTimestamp: 19700101173944Z
entryCSN: 19700101173944.872394Z#000000#000#000000
objectClass: top
objectClass: glue
structuralObjectClass: glue
modifiersName: cn=admin,dc=example,dc=com
modifyTimestamp: 19700101173944Z
答案1
可以使用以下方法删除条目:
ldapdelete <dn>
或递归:
ldapdelete -r <dn>
但是,您尝试删除的条目是glue
无法使用常规 LDAP 操作对其进行操作的条目。当子树由另一个 DSA 管理时,此粘合用于引用。它们还用作syncrepl
影子数据库,也可能由于复制问题而出现。
要将此类条目视为普通条目,请将选项添加-M
到ldapsearch
、ldapmodify
或ldapdelete
。使用以下命令删除此类条目:
ldapdelete -M <dn>
该选项发送manageDsaIT
控制,参见rfc3296:
客户端可以向 ManageDsaIT 控件提供操作,以表明该操作旨在管理 DSA(服务器)信息树内的对象。该控件使目录特定条目 (DSE)(无论类型如何)被视为普通条目,从而允许客户端使用 LDAP 操作查询和更新这些条目。