Ldap
為什麼即使 DN 正確,我也會收到“ldap_delete: Invalid DN syntax (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
的,但問題是關於命令語法中選項的順序。
經過長時間的研究,我發現如果您從架構中刪除了 objectClass 定義,則無法刪除 objectClass 的 ldap 條目。
解決方案是在架構中添加一個與您刪除的 objectClass 同名的 objectClass,然後刪除條目,
ldapdelete
最後從架構中刪除 objectClass。