Bei dem Programm ldapsearch kann man mit der Option -y eine Datei angeben, aus der ldapsearch das Passwort für die Verbindung zum LDAP Server ausliest. Obwohl das Passwort in der Datei korrekt war, lieferte ldapsearch immer den Fehler „ldap_bind: Invalid credentials (49)“. Nach einigem Suchen fand ich die Lösung.
ldapsearch kommt nicht damit zurecht, wenn ein Zeilenendzeichen oder Zeilenumbruch die Zeile in der Passwortdatei begrenzt. Diese werden bei der Authentifizierung als Passwortbestandteil gesehen, was die Authentifizierung natürlich fehlschlagen lässt.
echo PASSWORT > .ldappasswd
erzeugt eine Datei, die die Fehlermeldung “ldap_bind: Invalid credentials (49)” liefert, wenn man sie mit der ldapsearch -y Option benutzt, obwohl PASSWORT das korrekte Passwort für die LDAP Verbindung ist.
Die Lösung für das Problem ist das Löschen der Steuerzeichen mit dem tr Kommando.
echo PASSWORT | tr -d ‚\n\r‘ > .ldappasswd
Alternativ kann man auch die -n Option (do not output the trailing newline) bei dem Echo Befehl benutzen:
echo -n PASSWORT > .ldappasswd
Nun funktioniert die Datei mit der ldapsearch Option -y ohne Fehlermeldung.
Schreibe einen Kommentar