问题:
我正在尝试删除 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。