오픈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 서버(개발, 테스트, 프로덕션)에서 동일한 오류가 발생하므로 이는 한 서버에서만 이상한 동작이 아닙니다.

저는 "환경"에서 SSL 인증서를 사용합니다. 즉, 테스트 랩과 클라이언트 환경에서도 마찬가지입니다. 내 테스트 랩과 고객 환경은 비슷한 openldap 구성을 가지고 있습니다.

답변1

위 파일에 지정된 바인드를 찾지 못했습니다. 그러나 우리는 별칭이 정의되어 있음을 발견했습니다. 누군가 -x -W -D -H 옵션을 사용하여 DIT 중 하나에 대해 ldapadd, ldapdelete 등과 같은 별칭을 설정했습니다. 따라서 내 DIT 명령은 표준 구문을 사용할 수 없습니다. 물론 내 명령은 다른 DIT에서도 작동하지 않습니다. 어쨌든 감사합니다

관련 정보