为什么即使 DN 正确,也会收到“ldap_delete:无效 DN 语法 (34)”?

为什么即使 DN 正确,也会收到“ldap_delete:无效 DN 语法 (34)”?

问题:

我正在尝试删除 ldap 目录中的条目。该条目存在,但由于某些不良原因,该条目的类的架构不再存在。

我想要删除的条目是具有以下内容的条目dn: userr=lucio,dc=labammsis

$ ldapsearch -LLL -x -h 10.1.1.254 -b "dc=labammsis" -s sub
dn: dc=labammsis
objectClass: top
objectClass: dcObject
objectClass: organization
o: labammsis
dc: labammsis

dn: cn=admin,dc=labammsis
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

dn: userr=lucio,dc=labammsis
objectClass: data
limit: 200

当我尝试执行时ldapdelete,我遇到了无效的 DN 语法错误:

$ ldapdelete -x -D "cn=admin,dc=labammsis" -w "[mypassword]" -h 10.1.1.254 "userr=lucio,dc=labammsis"
ldap_delete: Invalid DN syntax (34)
    additional info: invalid DN

我遇到此错误是因为架构不再存在吗?如果是,我该怎么办?如果不是,那么问题是什么?

个人研究:

在 ServerFault 和网络上,有很多像我一样遇到此错误的人。无论如何,即使我阅读了很多有关此问题的问答,它们似乎总是处于ldapadd或的状态ldapmodify

我发现这个帖子关于ldapdelete,但问题在于命令语法中选项的顺序。

答案1

经过长期的研究,我发现如果从模式中删除了 objectClass 定义,就无法删除 objectClass 的 ldap 条目。

解决方案是向模式中添加一个与删除的 objectClass 同名的 objectClass,然后删除该条目,ldapdelete最后从模式中删除该 objectClass。

相关内容