
不要になったため、LDAP ルート DSE から 3 番目の 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と同じです。オプションを操作中で、オプションの順序を変更し、バインディングDN(-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
2つのバインディングDNを試しました(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
私はバインドDNとパスワードのために両方が必要だと思います。 (パスワードがありますが、パスワードは正しいです。現在、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サーバー(開発、テスト、プロダクション)で同じエラーが発生するため、これは1つのサーバーでのみ奇妙な動作ではありません。
私は「環境」でSSL証明書を使用します。つまり、テストラボやクライアント環境でも同様です。私のテストラボとカスタマーエクスペリエンスも同様のopenldap設定を持っています。
答え1
上記のファイルで指定されたバインドが見つかりませんでした。しかし、我々はエイリアスが定義されていることを発見しました。誰か -x -W -D -H オプションを使用して、DIT の 1 つに対して ldapadd、ldapdelete などのエイリアスを設定しました。したがって、私のDITコマンドは標準構文を使用できません。もちろん、私のコマンドは他のDITでも機能しません。とにかくありがとう