¿Cómo se supone que debo pasar una contraseña para ldapsearch
usar 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.txt
contiene mi contraseña, en texto plano. Tanto el DN como la contraseña son correctos. Si ejecuto el comando con la -W
opció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.
Respuestas:
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:
( ACTUALIZACIÓN : Incluido '-n')
fuente
echo -n
oprintf
para evitar la nueva línea.sed
embargo, solía quitar el final de un archivo existente.Suponiendo que es la nueva línea / reenvío del carro, intente lo siguiente:
Luego use el archivo .pass2.txt. Siempre puede verificar si hay nuevas líneas y retornos de carro con
cat -vE
y 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.fuente
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
fuente
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:
fuente