Einrichtung einer eigen Konfiguration für die ldap-Kommandos

Heute geht es mal um die Konfiguration der ldap-Kommandos wie ldapsearch. Um die Kommandos ohne die Angabe des Server oder der BASE ausführen zu können, kann eine systemweit gültige ldap.conf eingerichtet werden. Je nach verwendeter Distribution, oder bei der Verwendung der Symas-Pakete, liegt die Datei an unterschiedlichen Stellen im Dateisystem. Was aber die wenigsten wissen, jeder Benutzer kann sich auch eine eigene Konfiguration für die ldap-Kommandos erstellen und damit die systemweite Konfiguration übersteuern. Um die Einrichtung einer solchen Konfiguration soll es hier gehen.

Um eine eigene Konfiguration zu nutzen, wird eine Datei mit dem Namen .ldaprc direkt im Home-Verzeichnis benötigt. Es ist auch möglich eine Datei ldaprc (also ohne führenden Punkt) im aktuellen Verzeichnis abzulegen, dann wird die Konfiguration nur genutzt, wenn Sie direkt in das Verzeichnis wechseln.

Ich werde hier nur eine .ldaprc direkt im Home-Verzeichnis einrichten.

Im ersten Schritt soll dafür gesorgt werden, dass die systemweite Konfiguration komplett ignoriert wird. Sorgen Sie dafür, dass die Variable LDAPNOINIT gesetzt ist. Welcher Wert dort vergeben ist, spielt keine Rolle, wichtig ist nur, dass die Variable gesetzt ist.

In der systemweiten Konfiguration wird meist nur die Variable „BASE“ und „URI“ gesetzt um den Suffix und die LDAP-Server bekannt zu machen. In der eigenen .ldaprc können noch ein paar weitere Variablen genutzt werden:
Sie können hier zum Beispiel den BINDDN für die ldap-Kommandos setzen. Diese Variable steht nur in der user-Konfiguration zur Verfügung und kann nicht in der systemweiten Konfiguration gesetzt werden. Durch die Nutzung kann der eigene DN übergeben werden und der Parameter „-D“ kann entfallen. Das erspart das Tippen des DNs. Beim Aufruf von ldapsearch ist es aber notwendig, dass Sie immer noch die Option „-W“ (für die Abfrage des Passworts) angeben, ohne diese Option wird immer eine anonyme Suche gestartet.

Wenn mehrere Server in der Variablen URI angegeben werden sollen, dann dürfen die Servereinträge nicht quotiert werden, sondern die Servernamen werden einfach durch Leerzeichen voneinander getrennt.
Falsch wäre: URI „ldaps://provider01.example.net ldaps://provider02.example.net“
Richtig ist: URI ldaps://provider01.example.net ldaps://provider02.example.net

Leider ist es im Moment noch nicht möglich, so wie bei vielen anderen Werkzeugen, auf die SRV-Records des DNS zurückzugreifen. Es gibt aber eine „feature request“ für diese Möglichkeit: https://bugs.openldap.org/show_bug.cgi?id=9080.

Um die .ldaprc möglichst automatisch zu erzeugen, habe ich ein kleines Skript geschrieben, das alle benötigten Einträge erstellt, darunter auch die SRV-Records auflöst und in die eigenen .ldaprc einträgt. Das Skript ist selbstverständlich NICHT der Weisheit letzter Schluss, aber es funktioniert. Das Skript habe ich auch geschrieben, um (ACHTUNG WERBUNG) als Beispiel für das Seminar „Shell-Programmierung für Einsteiger“ in der Heinlein-Akademie zu dienen. Hier der Link zum Seminar: https://www.heinlein-support.de/schulung/shell-progammierung-einsteiger
So kann jeder Benutzer der ldap-Kommandos seine eigenen Datei erzeugen um auf die Server zugreifen zu können.

This entry was posted in LDAP. Bookmark the permalink.