Ldap

為什麼即使 DN 正確,我也會收到“ldap_delete: Invalid DN syntax (34)”?

  • June 10, 2020

問題:

我正在嘗試刪除 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 上還是在網路上,都有很多像我這樣的人面臨這個錯誤。無論如何,即使我閱讀了很多關於此的問答,他們似乎總是在ldapaddldapmodify

我發現這篇文章是關於ldapdelete的,但問題是關於命令語法中選項的順序。

經過長時間的研究,我發現如果您從架構中刪除了 objectClass 定義,則無法刪除 objectClass 的 ldap 條目。

解決方案是在架構中添加一個與您刪除的 objectClass 同名的 objectClass,然後刪除條目,ldapdelete最後從架構中刪除 objectClass。

引用自:https://serverfault.com/questions/1020280