OpenLDAP gibt Ihnen als Administrator eine Reihe von Programmen an die Hand, mit denen Sie die Daten im LDAP-Verzeichnis verwalten können. Im Folgenden werden die vier wichtigsten von ihnen zum Hinzufügen, Löschen, Durchsuchen und Verändern des Datenbestandes kurz behandelt.
Vorausgesetzt, die Konfiguration Ihres LDAP-Servers in
/etc/openldap/slapd.conf ist korrekt und
einsatzfähig, d.h. sie enthält die passenden Angaben für
suffix, directory,
rootdn, rootpw und
index, können Sie nun mit der Aufnahme von Einträgen
beginnen. OpenLDAP bietet hierfür den Befehl
ldapadd. Aus praktischen Gründen sollten Sie Objekte
nach Möglichkeit gebündelt zur Datenbank hinzufügen. Zu diesem Zweck
kennt LDAP das so genannte LDIF-Format (engl. LDAP Data Interchange
Format). Eine LDIF-Datei ist eine einfache Textdatei, die aus beliebig
vielen Attribut-Wert-Paaren bestehen kann. Für die zur Verfügung
stehenden Objektklassen und Attribute schauen Sie in den in
slapd.conf angegebenen Schemadateien nach. Die
LDIF-Datei zum Anlegen eines groben Gerüsts für das Beispiel aus Abbildung 29.1, „Aufbau eines LDAP-Verzeichnisses“ sähe
folgendermaßen aus (siehe
Beispiel 29.7, „Beispiel für eine LDIF-Datei“):
Beispiel 29.7. Beispiel für eine LDIF-Datei
# Die Organisation SUSE dn: dc=suse,dc=de objectClass: dcObject objectClass: organization o: SUSE AG dc: suse # Die Organisationseinheit Entwicklung (devel) dn: ou=devel,dc=suse,dc=de objectClass: organizationalUnit ou: devel # Die Organisationseinheit Dokumentation (doc) dn: ou=doc,dc=suse,dc=de objectClass: organizationalUnit ou: doc # Die Organisationseinheit Interne EDV (it) dn: ou=it,dc=suse,dc=de objectClass: organizationalUnit ou: it
![]() | Kodierung der LDIF-Dateien |
|---|---|
LDAP arbeitet mit UTF-8 (Unicode), Umlaute müssen demnach bei der Eingabe korrekt kodiert werden. Verwenden Sie einen Editor, der UTF-8 unterstützt (wie Kate oder neuere Emacs-Versionen). Wenn dies nicht möglich ist, vermeiden Sie Umlaute und andere Sonderzeichen oder benutzen recode, um die Eingabe in UTF-8 umzukodieren. | |
Speichern Sie die Datei unter <datei>.ldif ab
und übergeben Sie sie mit folgendem Befehl an den Server:
ldapadd -x -D <dn des Administrators> -W -f <datei>.ldif
-x gibt an, dass in diesem Fall auf
Authentifizierung über SASL verzichtet wird. -D
kennzeichnet den Benutzer, der diese Operation vornimmt; hier geben Sie
den gültigen DN des Administrators an, wie sie in
slapd.conf konfiguriert wurde. Im konkreten
Beispiel wäre dies cn=admin,dc=suse,dc=de. Mit
-W umgehen Sie die Eingabe des Passworts auf der
Kommandozeile (Klartext) und aktivieren eine separate Passwortabfrage.
Das betreffende Passwort wurde vorher in
slapd.conf unter rootpw
eingerichtet. -f übergibt die Datei. In
Beispiel 29.8, „ldapadd von beispiel.ldif“ sehen Sie
Aufruf von ldapadd im Detail.
Beispiel 29.8. ldapadd von beispiel.ldif
ldapadd -x -D cn=admin,dc=suse,dc=de -W -f beispiel.ldif Enter LDAP password: adding new entry "dc=suse,dc=de" adding new entry "ou=devel,dc=suse,dc=de" adding new entry "ou=doc,dc=suse,dc=de" adding new entry "ou=it,dc=suse,dc=de"
Die Benutzerdaten der einzelnen Mitarbeiter können Sie in separaten
LDIF-Dateien angeben. Mit dem folgenden Beispiel
tux.ldif
(siehe Beispiel 29.9, „LDIF-Datei für Tux“) wird der
Mitarbeiter Tux
dem neuen LDAP-Verzeichnis hinzugefügt:
Beispiel 29.9. LDIF-Datei für Tux
# Der Mitarbeiter Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de objectClass: inetOrgPerson cn: Tux Linux givenName: Tux sn: Linux mail: tux@suse.de uid: tux telephoneNumber: +49 1234 567-8
Eine LDIF-Datei kann beliebig viele Objekte enthalten. Sie können ganze Verzeichnisbäume am Stück an den Server übergeben oder auch nur Teile davon wie zum Beispiel einzelne Objekte. Wenn Sie Ihre Daten relativ häufig ändern müssen, empfiehlt sich eine feine Stückelung in einzelne Objekte, da Ihnen dann das mühsame Suchen nach dem zu ändernden Objekt in einer großen Datei erspart bleibt.
Stehen in Ihrem Datensatz Änderungen an, verwenden Sie das Tool
ldapmodify. Am einfachsten ändern Sie zuerst die
betreffende LDIF-Datei und übergeben anschließend die geänderte Datei
wieder an den LDAP-Server. Um zum Beispiel die Telefonnummer des
Mitarbeiters Tux von
+49 1234 567-8 auf +49 1234
567-10 zu ändern, editieren Sie die LDIF-Datei wie in
Beispiel 29.10, „Geänderte LDIF Datei tux.ldif“ gezeigt.
Beispiel 29.10. Geänderte LDIF Datei tux.ldif
# Der Mitarbeiter Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10
Die geänderte Datei importieren Sie mit dem folgenden Befehl in das LDAP-Verzeichnis:
ldapmodify -x -D cn=admin,dc=suse,dc=de -W -f tux.ldif
Alternativ können Sie ldapmodify auch direkt die zu ändernden Attribute auf der Kommandozeile angeben. Hierbei gehen Sie wie folgt vor:
Rufen Sie ldapmodify auf und geben Sie Ihr Passwort ein:
ldapmodify -x -D cn=admin,dc=suse,dc=de -W Enter LDAP password:
Geben Sie Ihre Änderungen nach der folgenden Syntax in genau dieser Reihenfolge an:
dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10
Detaillierte Informationen zu ldapmodify und zur Syntax lesen Sie in der Manualpage (ldapmodify(1)) nach.
OpenLDAP bietet mit ldapsearch ein Kommandozeilenwerkzeug zum Durchsuchen und Auslesen von Daten im LDAP-Verzeichnis. Ein einfaches Suchkommando hätte folgende Syntax:
ldapsearch -x -b dc=suse,dc=de "(objectClass=*)"
Die Option -b legt die Suchbasis, d.h. den
Baumbereich, in dem gesucht werden soll, fest. In diesem Fall ist dies
dc=suse,dc=de. Möchten Sie eine verfeinerte Suche
auf bestimmten Unterbereichen des LDAP-Verzeichnisses ausführen (z.B.
nur über die Abteilung devel), geben Sie diesen
Bereich mittels -b an. ldapsearch
-x legt die Verwendung einfacher Authentifizierung
fest. Mit (objectClass=*) legen Sie fest, dass Sie
alle in Ihrem Verzeichnis enthaltenen Objekte auslesen wollen.
Verwenden Sie dieses Kommando nach dem Aufbau eines neuen
Verzeichnisbaumes, um zu überprüfen, ob alle Ihre Einträge korrekt
übernommen wurden und der Server in der gewünschten Form antwortet.
Weitere Informationen zum Gebrauch von ldapsearch
finden Sie in der entsprechenden Manualpage (ldapsearch (1)).