Wie soll ich ein Passwort für die ldapsearch
Verwendung der -y <password file>
Option vergeben?
Wenn ich das Passwort in die Passwortdatei im Klartext schreibe, erhalte ich folgende Fehlermeldung:
ldap_bind: Invalid credentials (49)
additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772
Das gleiche passiert, wenn ich die -w <password>
Option benutze .
BEARBEITEN :
Der Befehl, den ich ausführe, ist
ldapsearch -x -D <my dn> -y .pass.txt -h server.x.x -b "dc=x,dc=y" "cn=*"
Wo die Datei .pass.txt
mein Passwort enthält, im Klartext. Sowohl der DN als auch das Passwort sind korrekt. Wenn ich den Befehl mit der -W
Option ausführe und das Kennwort an der Eingabeaufforderung eingebe, wird der Befehl erfolgreich ausgeführt, aber ich möchte das Kennwort irgendwie speichern, um ein Skript zu erstellen.
Antworten:
Beachten Sie, dass ldapsearch den gesamten Inhalt der Datei für das Kennwort verwendet. Dies bedeutet, dass ein eventuell vorhandenes Zeilenumbruchzeichen enthalten wird. Versuchen Sie, eine Datei ohne diese zu erstellen, um zu überprüfen, ob dies tatsächlich Ihr Problem ist:
( UPDATE : Enthaltenes '-n')
quelle
echo -n
oderprintf
um den Zeilenumbruch zu vermeiden.sed
das Ende einer vorhandenen Datei entfernt.Angenommen, es handelt sich um die Neu- / Wagenrückführung, versuchen Sie Folgendes:
Verwenden Sie dann die .pass2.txt-Datei. Sie können immer mit nach neuen Zeilen und Zeilenumbrüchen suchen
cat -vE
und diese werden als $ bzw. ^ M angezeigt.Sie könnten dies wahrscheinlich auch
-y <(cat .pass.txt | tr -d '\n\r')
direkt im Befehl ldapsearch tun .quelle
ldapsearch -x -D cn=Manager,dc=domain,dc=com -y pass.txt -H ldap://ldap.domain.com -b dc=domain,dc=com
Möglicherweise müssen Sie 600 pass.txt chmod
quelle
Es ist nicht erforderlich, das Kennwort in eine tatsächliche Datei zu kopieren. Geben Sie es einfach mit dem Flag -n zurück, um die neue Zeile zu verhindern, und lesen Sie es dann wie folgt aus dem STDIN-Dateideskriptor (/ dev / fd / 0) ein:
quelle