ldapsearch 비밀번호 파일 형식


18

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옵션 및 명령이 성공적으로 실행 프롬프트에 암호를 입력,하지만 난 스크립트를 만들기 위해 어떻게 든 암호를 저장하고 싶습니다.


어떤 종류의 "암호 파일"을 사용하고 있습니까? 입력하는 전체 명령을 표시 할 수 있습니다. 올바른 바인드 자격 증명을 사용하고 있습니까?
solefald

답변:


22

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

echo -n ThisIsaBadPassword > .pass.txt

( 업데이트 : '-n'포함)


1
방금 시도했지만 정확히 같은 오류가 발생합니다.
Paolo Tedesco

2
아뇨. 당신이 필요 echo -n하거나 printf줄 바꿈을 방지하기 위해있다.
user1686

에코 -n 트릭을 수행했습니다! 도와 주셔서 감사합니다.
Paolo Tedesco

grawity의 의견에 따라 echo -n은 완벽하게 작동합니다. 예 : echo -n "secretpassword"> /etc/ldapscripts/ldapscripts.passwd
Ned W.

이로 인해 성가신 문제가 해결되었습니다. 방금 sed기존 파일의 끝을 제거하는 데 사용 했습니다.
wirefox

1

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

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

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

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


0

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해야 할 수도 있습니다.


-2

비밀번호를 실제 파일로 덤프 할 필요가 없습니다. 개행을 막기 위해 -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=*"

이 방법의 문제점은 쉘 히스토리와 PS가 암호를 발견하게하는 것입니다.
cgseller

1
요점을 알았어. 2018 년 중반입니다. 나는 나의 실수로부터 배웠다. 내 2014 년을 심각하게 비난하지 마십시오. 감사합니다. :)
Brian Showalter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.