In OpenLDAP stehen eine Reihe von Werkzeugen für die Datenverwaltung im LDAP-Verzeichnis zur Verfügung. Die vier wichtigsten Werkzeuge für Hinzufüge-, Lösch-, Such- und Änderungsvorgänge im Datenbestand werden im Folgenden kurz beschrieben.
Sobald die Konfiguration des LDAP-Servers in
/etc/openldap/slapd.conf richtig und einsatzbereit ist
(sie enthält die richtigen Einträge für suffix,
directory, rootdn,
rootpw und index), fahren Sie mit der
Eingabe von Datensätzen fort. In OpenLDAP steht hierfür der Befehl
ldapadd zur Verfügung. Wenn möglich, sollten Sie aus
praktischen Gründen die Objekte als Bundle in der Datenbank hinzufügen. Zu
diesem Zweck kann LDAP das LDIF-Format (LDAP Data Interchange Format)
verarbeiten. Bei einer LDIF-Datei handelt es sich um eine einfache
Textdatei, die eine beliebige Anzahl an Attribut-Wert-Paaren enthalten
kann. In den in slapd.conf deklarierten Schemadateien
finden Sie die verfügbaren Objektklassen und Attribute. Die LDIF-Datei zur
Erstellung eines groben Framework für das Beispiel in Abbildung 45.1, „Struktur eines LDAP-Verzeichnisses“ würde der Datei in Beispiel 45.7, „Beispiel für eine LDIF-Datei“ ähneln.
Beispiel 45.7. Beispiel für eine LDIF-Datei
# The SUSE Organization dn: dc=suse,dc=de objectClass: dcObject objectClass: organization o: SUSE AG dc: suse # The organizational unit development (devel) dn: ou=devel,dc=suse,dc=de objectClass: organizationalUnit ou: devel # The organizational unit documentation (doc) dn: ou=doc,dc=suse,dc=de objectClass: organizationalUnit ou: doc # The organizational unit internal IT (it) dn: ou=it,dc=suse,dc=de objectClass: organizationalUnit ou: it
![]() | Kodierung von LDIF-Dateien |
|---|---|
LDAP arbeitet mit UTF-8 (Unicode). Umlaute müssen richtig kodiert werden. Verwenden Sie einen Editor mit UTF-8-Unterstützung, wie beispielsweise Kate oder neuere Versionen von Emacs. Ansonsten sollten Sie Umlaute und andere Sonderzeichen vermeiden oder recode verwenden, um die Eingabe in UTF-8 neu zu kodieren. | |
Speichern Sie die Datei mit der Erweiterung .ldif und geben Sie sie mit folgendem Befehl an den Server weiter:
ldapadd -x -DDN_des_Administrators-W -fDateiname.ldif
-x deaktiviert in diesem Fall die Authentifizierung
mit SASL. -D deklariert den Benutzer, der den Vorgang
aufruft. Der gültige DN des Administrators wird hier so eingegeben, wie er
in slapd.conf konfiguriert wurde. Im aktuellen
Beispiel lautet er cn=admin,dc=suse,dc=de. Mit
-W wird die Passworteingabe in der Befehlszeile
(unverschlüsselt) umgangen und eine separate Passworteingabeaufforderung
aktiviert. Das Passwort wurde zuvor in slapd.conf mit
rootpw festgelegt. Mit -f wird der
Dateiname weitergegeben. Detaillierte Informationen zum Ausführen von
ldapadd erhalten Sie in Beispiel 45.8, „ldapadd mit example.ldif“.
Beispiel 45.8. ldapadd mit example.ldif
ldapadd -x -D cn=admin,dc=suse,dc=de -W -f example.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 einzelner Personen können in separaten LDIF-Dateien
vorbereitet werden.In Beispiel 45.9, „LDIF-Daten für Tux“ wird dem neuen
LDAP-Verzeichnis Tux hinzugefügt.
Beispiel 45.9. LDIF-Daten für Tux
# coworker 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 eine beliebige Anzahl an Objekten enthalten. Es können ganze Verzeichnisverzweigungen oder nur Teile davon in einem Vorgang an den Server weitergegeben werden, wie im Beispiel der einzelnen Objekte dargestellt. Wenn bestimmte Daten relativ häufig geändert werden müssen, wird eine detaillierte Unterteilung der einzelnen Objekte empfohlen.
Mit dem Werkzeug ldapmodify kann der Datenbestand
geändert werden. Am einfachsten können Sie dies durch die Änderung der
entsprechenden LDIF-Datei und der Weiterleitung der geänderten Datei an den
LDAP-Server erreichen. Wenn Sie die Telefonnummer des Kollegen Tux von
+49 1234 567-8 in +49 1234 567-10
ändern möchten, bearbeiten Sie die LDIF-Datei, wie in Beispiel 45.10, „Geänderte LDIF-Datei tux.ldif“ angegeben.
Beispiel 45.10. Geänderte LDIF-Datei tux.ldif
# coworker Tux dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10
Importieren Sie die geänderte Datei mit folgendem Befehl in das LDAP-Verzeichnis:
ldapmodify -x -D cn=admin,dc=suse,dc=de -W -f tux.ldif
Alternativ können Sie die zu ändernden Attribute direkt an ldapmodify weitergeben. Die entsprechende Vorgehensweise wird nachfolgend beschrieben:
Starten Sie ldapmodify und geben Sie Ihr Passwort ein:
ldapmodify -x -D cn=admin,dc=suse,dc=de -W Enter LDAP password:
Geben Sie die Änderungen ein und halten Sie sich dabei genau in die unten angegebene Syntax-Reihenfolge:
dn: cn=Tux Linux,ou=devel,dc=suse,dc=de changetype: modify replace: telephoneNumber telephoneNumber: +49 1234 567-10
Detaillierte Informationen zu ldapmodify und der
zugehörigen Syntax finden Sie auf der Manualpage von
ldapmodify(1).
Mit ldapsearch steht in OpenLDAP ein Kommandozeilenwerkzeug zum Durchsuchen von Daten innerhalb eines LDAP-Verzeichnisses und zum Auslesen von Daten aus dem Verzeichnis zur Verfügung. Eine einfache Abfrage weist folgende Syntax auf:
ldapsearch -x -b dc=suse,dc=de "(objectClass=*)"
Mit der Option -b wird die Suchbasis festgelegt – der
Abschnitt des Baums, in dem die Suche durchgeführt werden soll. Im
aktuellen Fall lautet er dc=suse,dc=de. Wenn Sie eine
feiner abgestufte Suche in speziellen Unterabschnitten des
LDAP-Verzeichnisses durchführen möchten (beispielsweise nur innerhalb der
Abteilung devel), geben Sie diesen Abschnitt mit
-b an ldapsearch weiter. Mit
-x wird die Aktivierung einfacher Authentifizierung
angefordert. (objectClass=*) enthält die Anweisung, dass
alle im Verzeichnis enthaltenen Objekte gelesen werden sollen. Diese
Befehlsoption kann nach der Erstellung eines neuen Verzeichnisbaums
verwendet werden, um zu prüfen, ob alle Einträge richtig aufgezeichnet
wurden und ob der Server wie gewünscht reagiert. Weitere Informationen zur
Verwendung von ldapsearch finden Sie auf der
entsprechenden Manualpage von ldapsearch(1).
Mit ldapdelete werden unerwünschte Einträge
gelöscht. Die Syntax ähnelt der der oben beschriebenen Befehle. Wenn Sie
beispielsweise den vollständigen Eintrag für Tux Linux
löschen möchten, erteilen Sie folgenden Befehl:
ldapdelete -x -D cn=admin,dc=suse,dc=de -W cn=Tux \ Linux,ou=devel,dc=suse,dc=de