我嘗試從 ldap 根 DSE 中遞歸刪除第三個 DIT,因為不再需要它,但我在客戶的環境中收到以下錯誤:
host:~# ldapdelete -x -W -D cn=admin,cn=config -r -f /tmp/ldap-bck/delete.ldif
ldapdelete: -D previously specified
同樣的命令在我的 Virtualbox Centos 7.5 伺服器上的測試實驗室中運行得非常順利。但在 RHEL 7.6 的客戶環境中則不然。 openldap 版本號相同,2.4.44。我正在擺弄選項,更改了選項的順序,更改了 bindDN (-D) 和 DN 的“”和 '',正在使用 -c 和 -v 選項來查看更多...並且我無法解決問題...
首先我嘗試刪除 DN:
host:~# ldapdelete -x -W -D cn=admin,cn=config 'dc=x,dc=y,dc=z,dc=zzz'
然後我嘗試使用選項 -f :
host:~# ldapdelete -x -W -D cn=admin,cn=config -r -f /tmp/ldap-bck/delete.ldif
已嘗試兩個bindDN-s(cn = admin,cn = config和rootDN cn = admin,dc = x,dc = y,dc = z,dc = zzz以及,最後一個必須工作)。
嘗試過不使用 -D 參數 - 然後我得到:
host:~# ldapdelete -r -f /tmp/ldap-bck/delete.ldif
Enter LDAP Password:
ldap_delete: Insufficient access (50)
host:~# ldapdelete -r -c -f /tmp/ldap-bck/delete.ldif
Enter LDAP Password:
ldap_bind: Server is unwilling to perform (53)
additional info: unauthenticated bind (DN with no password) disallowed
host:~# ldapdelete -r -v -f /tmp/ldap-bck/delete.ldif
ldap_initialize( ldapi:///??base )
Enter LDAP Password:
ldap_bind: Server is unwilling to perform (53)
additional info: unauthenticated bind (DN with no password) disallowed
我想因為bindDN 和密碼,兩者都是需要的。 (我有密碼,正確的密碼,不可能有錯誤,因為目前所有 3 個 DIT 和設定資料庫使用相同的密碼。)
我已經嘗試過 -Y EXTERNAL 身份驗證,但這不起作用:
host:~# ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/ldap-bck/delete.ldif -n
ldapmodify: incompatible with authentication choice
所以我必須使用簡單的身份驗證。但是一旦我指定 -D 選項,我就會得到相同的錯誤。我嘗試使用 ldif 檔案對 ldapmodify 執行相同的操作。同樣的錯誤:
host:~# ldapmodify -D "cn=admin,cn=config" -x -W -f /tmp/ldap-bck/delete.ldif -n
host:~# ldapmodify -D "cn=admin,dc=x,dc=y,dc=z,dc=zzz" -x -W -f /tmp/ldap-bck/delete.ldif -n
然後我嘗試執行 ldapsearch 來檢查功能,但如果指定 -D 選項,則會出現相同的錯誤。
host:~# ldapsearch -x -D "cn=admin,dc=x,dc=y,dc=z,dc=zzz" -W -b 'dc=x,dc=y,dc=z,dc=zzz' '(objectclass=*)' -c
ldapsearch: -D previously specified
同樣的錯誤出現在 3 台 RHEL 伺服器(開發、測試和生產)上,因此這不僅僅是一台伺服器的奇怪行為。
我在“環境”中使用 SSL 憑證 - 因此在我的測試實驗室和客戶環境中。我的測試實驗室和客戶環境的 openldap 配置類似。
答案1
我在上述文件中沒有找到任何指定的binddn。但我們發現定義了別名...有人使用選項 -x -W -D -H 為其中一個 DIT 設定了 ldapadd、ldapdelete 等別名。所以我的這個 DIT 指令不能使用標準語法。當然,我的命令對其他 DIT 也不起作用......無論如何還是謝謝你