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=*"