Como devo passar uma senha para ldapsearch
usar a -y <password file>
opção?
Se eu escrever a senha no arquivo de senha em texto sem formatação, recebo este erro:
ldap_bind: Invalid credentials (49)
additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772
O mesmo acontece se eu usar a -w <password>
opção
EDIT :
O comando que estou executando é
ldapsearch -x -D <my dn> -y .pass.txt -h server.x.x -b "dc=x,dc=y" "cn=*"
Onde o arquivo .pass.txt
contém minha senha, em texto simples. O DN e a senha estão corretos. Se eu executar o comando com a -W
opção e digitar a senha no prompt, o comando será executado com êxito, mas eu gostaria de armazenar a senha de alguma forma para criar um script.
Respostas:
Lembre-se de que o ldapsearch usará todo o conteúdo do arquivo para a senha - o que significa que incluirá um caractere de nova linha final, se houver. Para verificar se esse é realmente o seu problema, tente criar um arquivo sem um:
( ATUALIZAÇÃO : Incluído '-n')
fonte
echo -n
ouprintf
para evitar a nova linha.sed
retirar o final de um arquivo existente.Supondo que seja a nova linha / retorno de carro, tente o seguinte:
Em seguida, use o arquivo .pass2.txt. Você sempre pode verificar se há novas linhas e retornos de carro
cat -vE
e eles aparecerão como $ e ^ M, respectivamente.Você provavelmente também poderia fazer isso
-y <(cat .pass.txt | tr -d '\n\r')
diretamente no comando ldapsearch.fonte
ldapsearch -x -D cn=Manager,dc=domain,dc=com -y pass.txt -H ldap://ldap.domain.com -b dc=domain,dc=com
Você pode ter que chmod 600 pass.txt
fonte
Não é necessário despejar a senha em um arquivo real. Apenas faça eco com o sinalizador -n para impedir a nova linha e, em seguida, leia-a no descritor de arquivo STDIN (/ dev / fd / 0) da seguinte maneira:
fonte