formato de archivo de contraseña de ldapsearch


18

¿Cómo se supone que debo pasar una contraseña para ldapsearchusar la -y <password file>opción?
Si escribo la contraseña en el archivo de contraseña en texto plano, me sale este error:

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

Lo mismo sucede si uso la -w <password>opción.

EDITAR :
El comando que estoy ejecutando es

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

Donde el archivo .pass.txtcontiene mi contraseña, en texto plano. Tanto el DN como la contraseña son correctos. Si ejecuto el comando con la -Wopción y escribo la contraseña en el indicador, el comando se ejecuta correctamente, pero me gustaría almacenar la contraseña de alguna manera para crear un script.


¿Qué tipo de "archivo de contraseña" estás usando? Es posible que desee mostrarnos el comando completo que está escribiendo. ¿Está utilizando las credenciales de enlace correctas?
solefald

Respuestas:


22

Tenga en cuenta que ldapsearch usará todo el contenido del archivo para la contraseña, lo que significa que INCLUIRÁ un carácter de nueva línea de terminación si existe. Para verificar si este es realmente su problema, intente crear un archivo sin uno:

echo -n ThisIsaBadPassword > .pass.txt

( ACTUALIZACIÓN : Incluido '-n')


1
Acabo de intentar eso, pero me sale exactamente el mismo error ...
Paolo Tedesco

2
No, no lo hará. Necesita echo -no printfpara evitar la nueva línea.
user1686

El eco -n hizo el truco! Gracias por toda tu ayuda.
Paolo Tedesco

En seguimiento al comentario de Grawity, echo -n funciona perfectamente, por ejemplo: echo -n "contraseña secreta"> /etc/ldapscripts/ldapscripts.passwd
Ned W.

Problema molesto resuelto debido a esto, gracias. Sin sedembargo, solía quitar el final de un archivo existente.
wirefox

1

Suponiendo que es la nueva línea / reenvío del carro, intente lo siguiente:

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

Luego use el archivo .pass2.txt. Siempre puede verificar si hay nuevas líneas y retornos de carro con cat -vEy aparecerán como $ y ^ M respectivamente.

Probablemente también podría hacerlo -y <(cat .pass.txt | tr -d '\n\r')directamente en el comando ldapsearch.


0

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

Puede que tenga que chmod 600 pass.txt


-2

No es necesario volcar la contraseña en un archivo real. Simplemente repítalo con el indicador -n para evitar la nueva línea, luego léalo desde el descriptor de archivo STDIN (/ dev / fd / 0) de la siguiente manera:

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

El problema con este enfoque es que lo deja sujeto al historial de shell y PS para descubrir su contraseña.
cgseller

1
Punto a favor. Es mediados de 2018 ahora. He aprendido de mis errores. No te tomes en serio mi parloteo de 2014. Gracias. :)
Brian Showalter
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.