오픈LDAP 2.4.44. 오류 "-D가 이전에 지정되었습니다"

오픈LDAP 2.4.44. 오류 "-D가 이전에 지정되었습니다"

더 이상 필요하지 않기 때문에 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로 동일합니다. 옵션을 가지고 놀고 있었고, 옵션 순서를 변경했으며, 바인드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

두 개의 바인딩 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 서버(dev, test, prod)에서 나타나므로 이는 단지 한 서버의 이상한 동작이 아닙니다.

저는 "환경", 즉 테스트 랩과 고객 환경 모두에서 SSL 인증서를 사용하고 있습니다. 내 테스트랩과 고객 환경의 openldap 구성은 비슷합니다.

답변1

언급된 파일에서 지정된 바인드를 찾지 못했습니다. 그러나 정의된 별칭을 찾았습니다. 누군가 -x -W -D -H 옵션을 사용하여 DIT 중 하나에 대해 ldapadd, ldapdelete 등에 대한 별칭을 설정했습니다. 그래서 이 DIT에 대한 내 명령은 표준 구문에서 작동하지 않았습니다. 물론 내 명령은 다른 DIT에서도 작동하지 않았습니다. 어쨌든 감사합니다.

관련 정보