ldapsearch 비밀번호 파일 형식 DSID-0C0903AA, comment: AcceptSecurityContext error, data

ldapsearch-y <password file>옵션 을 사용하려면 어떻게 암호를 전달해야 합니까?
비밀번호 파일에 비밀번호를 일반 텍스트로 쓰면 다음 오류가 발생합니다.

ldap_bind: Invalid credentials (49)
    additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772

-w <password>옵션을 사용하는 경우에도 마찬가지 입니다.

편집 :
내가 실행중인 명령은

ldapsearch -x -D <my dn> -y .pass.txt -h server.x.x -b "dc=x,dc=y" "cn=*"

파일 .pass.txt에 내 비밀번호가 포함 된 곳 ( 일반 텍스트). DN과 비밀번호가 모두 정확합니다. 내가 가진 명령을 실행하면 -W옵션 및 명령이 성공적으로 실행 프롬프트에 암호를 입력,하지만 난 스크립트를 만들기 위해 어떻게 든 암호를 저장하고 싶습니다.



답변

ldapsearch는 파일의 전체 내용을 비밀번호로 사용하므로 종료되는 개행 문자 (있는 경우)가 포함됩니다. 이것이 실제로 문제인지 확인하려면 파일이없는 파일을 작성하십시오.

echo -n ThisIsaBadPassword > .pass.txt

( 업데이트 : ‘-n’포함)


답변

줄 바꿈 / 캐리지 리턴이라고 가정하면 다음을 시도하십시오.

cat .pass.txt | tr -d '\n\r' > .pass2.txt

그런 다음 .pass2.txt 파일을 사용하십시오. 항상 새 줄과 캐리지 리턴을 확인할 수 있으며 cat -vE각각 $와 ^ M으로 표시됩니다.

-y <(cat .pass.txt | tr -d '\n\r')ldapsearch 명령에서 직접 수행 할 수도 있습니다 .


답변

ldapsearch -x -D cn=Manager,dc=domain,dc=com -y pass.txt -H ldap://ldap.domain.com -b dc=domain,dc=com

600 pass.txt를 chmod해야 할 수도 있습니다.


답변

비밀번호를 실제 파일로 덤프 할 필요가 없습니다. 개행을 막기 위해 -n 플래그로 에코 한 다음 STDIN 파일 디스크립터 (/ dev / fd / 0)에서 다음과 같이 읽어보십시오.

echo -n 'mypassword' | ldapsearch -x -D <my dn> -y /dev/fd/0 -h server.x.x -b "dc=x,dc=y" "cn=*"


답변