So verwenden Sie LDIF-Dateien, um Änderungen an einem OpenLDAP-System vorzunehmen

Einführung

LDAP ist ein Protokoll zur Verwaltung und Interaktion mit Verzeichnisdiensten. Das OpenLDAP-Projekt bietet einen LDAP-kompatiblen Verzeichnisdienst, der zum Speichern und Bereitstellen einer Schnittstelle für Verzeichnisdaten verwendet werden kann.

In diesem Handbuch wird das LDIF-Dateiformat erläutert, das für die Kommunikation mit LDAP-Verzeichnissen verwendet wird. Wir werden die Tools erläutern, mit denen Sie diese Dateien verarbeiten und die LDAP-Verzeichnisinformationsbaumstruktur basierend auf den angegebenen Befehlen ändern können.

Voraussetzungen

Bevor Sie mit diesem Handbuch beginnen, sollten Sie Zugriff auf einen OpenLDAP-Server haben. Sie erfahren, wie Sie einen OpenLDAP-Serverhere einrichten. Sie sollten mit der grundlegenden Terminologie vertraut sein, die beim Arbeiten mit einem LDAP-Verzeichnisdienst verwendet wird. This guide können verwendet werden, um sich mit diesen Themen vertraut zu machen.

LDIF-Format

LDIF oder das LDAP-Datenaustauschformat ist ein Textformat zur Darstellung von LDAP-Daten und -Befehlen. Bei Verwendung eines LDAP-Systems werden Sie wahrscheinlich das LDIF-Format verwenden, um Ihre Daten und die Änderungen anzugeben, die Sie am LDAP-DIT vornehmen möchten.

LDIF soll in der Lage sein, jeden Eintrag innerhalb eines LDAP-Systems sowie alle Änderungen, die stattfinden müssen, zu beschreiben. Aus diesem Grund ist die Syntax sehr präzise und kann zunächst etwas komplex erscheinen. Mit LDIF werden LDAP-Änderungen einfach in Dateien mit einem beliebigen Namen geschrieben und dann mit einem der verfügbaren Verwaltungsbefehle in das LDAP-System eingespeist.

LDIF verwendet ein einfaches Schlüsselwertsystem mit einer Anweisung pro Zeile. Die Taste befindet sich auf der linken Seite einer Zeile, gefolgt von einem Doppelpunkt (:) und einem Leerzeichen. Das Leerzeichen ist wichtig, damit die Zeile korrekt gelesen werden kann. Der Wert wird dann auf der rechten Seite zugewiesen. Dieses Format eignet sich gut für die LDAP-Syntax mit vielen Attributen, kann jedoch auch zum Ausgeben von Befehlen und zum Bereitstellen von Anweisungen zum Interpretieren des Inhalts verwendet werden.

Mehrere Zeilen können verwendet werden, um lange Werte für das Attribut bereitzustellen, indem die zusätzlichen Zeilen mit einem einzelnen Leerzeichen beginnen. LDAP verknüpft diese bei der Verarbeitung des Eintrags.

Einträge zum DIT hinzufügen

Es gibt zwei Möglichkeiten, einen neuen Eintrag in einer LDIF-Datei anzugeben. Die beste Methode für Ihre Anforderungen hängt von den Arten anderer Änderungen ab, mit denen Sie sich abstimmen müssen. Die Methode, die Sie auswählen, bestimmt die Tools und Argumente, die Sie verwenden müssen, um die Änderungen auf den LDAP-DIT (Verzeichnisinformationsbaum) anzuwenden.

Einträge auflisten, die zum DIT hinzugefügt werden sollen

Die grundlegendste Methode zum Definieren neuer Einträge zum Hinzufügen zu LDAP besteht darin, die Einträge einfach in ihrer Gesamtheit aufzulisten, genau so, wie sie normalerweise mit LDAP-Tools angezeigt würden. Dies beginnt mit dem DN (Distinguished Name), in dem der Eintrag nach dem Indikatordn:erstellt wird:

dn: ou=newgroup,dc=example,dc=com

In der obigen Zeile verweisen wir auf einige Schlüssel-Wert-Paare, um den DN für unseren neuen Eintrag zu erstellen. Bei den Attributwerten vonsettingmüssen Sie den Doppelpunkt und das Leerzeichen verwenden. Beireferencing Attributen / Werten sollte stattdessen ein Gleichheitszeichen verwendet werden.

Im einfachsten LDIF-Format zum Hinzufügen von Einträgen zu einer DIT wird der Rest des Eintrags einfach unter Verwendung dieses Formats unter der DN-Definition ausgeschrieben. Die erforderlichen objectClass-Deklarationen und -Attribute müssen festgelegt werden, um einen gültigen Eintrag zu erstellen. Um beispielsweise eine Organisationseinheit zu erstellen, die die Einträge für die Mitarbeiter unserer Organisation enthält, könnten wir Folgendes verwenden:

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

Sie können mehrere Einträge in eine einzelne Datei einfügen. Jeder Eintrag muss durch mindestens eine vollständig leere Zeile getrennt sein:

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=othergroup,dc=example,dc=com
objectClass: organizationalUnit
ou: othergroup

Wie Sie sehen, spiegelt dieses LDIF-Format fast genau das Format wider, das Sie beim Abfragen eines LDAP-Baums nach Einträgen mit diesen Informationen sehen würden. Sie können so ziemlich einfach schreiben, was der Eintrag wörtlich enthalten soll.

Verwenden Sie „Änderungstyp: Hinzufügen“, um neue Einträge zu erstellen

Das zweite Format, das wir betrachten werden, funktioniert gut, wenn Sie andere Änderungen in derselben LDIF-Datei vornehmen. OpenLDAP bietet Tools, die sowohl Hinzufügungen als auch Änderungen verarbeiten können. Wenn wir also andere Einträge in derselben Datei ändern, können wir unsere neuen Einträge als Hinzufügungen kennzeichnen, damit sie ordnungsgemäß verarbeitet werden.

Dies ähnelt der obigen Methode, aber wir fügenchangetype: add direkt unter der DN-Spezifikation hinzu. Zum Beispiel könnten wir einem DIT, der bereits die Struktur vonou=People,dc=example,dc=comenthält, einen John Smith-Eintrag hinzufügen, indem wir ein LDIF wie folgt verwenden:

dn: uid=jsmith1,ou=People,dc=example,dc=com
changetype: add
objectClass: inetOrgPerson
description: John Smith from Accounting.  John is the project
  manager of the building project, so contact him with any que
 stions.
cn: John Smith
sn: Smith
uid: jsmith1

Dies ist im Grunde das Format, in dem wir bisher Einträge beschrieben haben, mit Ausnahme einer zusätzlichen Zeile nach der DN-Angabe. Hier teilen wir LDAP mit, dass die Änderung, die wir vornehmen, eine Eintragserstellung ist. Da wir die Optionchangetype verwenden, kann dieser Eintrag problemlos vom Toolldapmodifyverarbeitet werden, sodass wir Änderungen anderer Typen in derselben LDIF-Datei ablegen können. Die Optionchangetype muss unmittelbar nach der DN-Spezifikation kommen.

Eine andere Sache, die oben zu beachten ist, ist die Verwendung eines mehrzeiligen Wertes für das Attributdescription. Da die folgenden Zeilen mit einem Leerzeichen beginnen, werden sie mit dem entfernten Leerzeichen verbunden. Unsere erste Fortsetzungszeile in unserem Beispiel enthält ein zusätzliches Leerzeichen, das jedoch Teil des Satzes selbst ist und die Wörter „Projekt“ und „Manager“ voneinander trennt.

Wie im letzten Abschnitt wird jeder weitere Eintrag in derselben Datei durch eine Leerzeile getrennt. Kommentare können verwendet werden, indem die Zeile mit einem#-Zeichen begonnen wird. Kommentare müssen in einer eigenen Zeile stehen. Wenn wir zum Beispiel Sally in dieselbe LDIF-Datei einfügen möchten, können wir die beiden Einträge wie folgt trennen:

# Add John Smith to the organization
dn: uid=jsmith1,ou=People,dc=example,dc=com
changetype: add
objectClass: inetOrgPerson
description: John Smith from Accounting.  John is the project
  manager of the building project, so contact him with any qu
 estions.
cn: John Smith
sn: Smith
uid: jsmith1

# Add Sally Brown to the organization
dn: uid=sbrown20,ou=People,dc=example,dc=com
changetype: add
objectClass: inetOrgPerson
description: Sally Brown from engineering.  Sally is responsibl
 e for designing the blue prints and testing the structural int
 egrity of the design.
cn: Sally Brown
sn: Brown
uid: sbrown20

Eintragszusätze verarbeiten

Nachdem wir nun wissen, wie man LDIF-Dateien erstellt, um neue Einträge hinzuzufügen, müssen wir diese mit LDAP-Tools verarbeiten, um sie dem DIT hinzuzufügen. Das Werkzeug und / oder die Argumente, die Sie verwenden, hängen von der oben ausgewählten Form ab.

Wenn Sie das einfache Eingabeformat verwenden (ohne die Einstellungchangetype), können Sie den Befehlldapadd oder den Befehlldapmodify mit dem Flag-a verwenden, das einen Eintrag angibt Zusatz. Sie müssen entweder eine SASL-Methode verwenden, um sich bei der LDAP-Instanz zu authentifizieren (dies liegt außerhalb des Bereichs dieses Handbuchs), oder sich an ein Administratorkonto in Ihrer DIT binden und das erforderliche Kennwort angeben.

Wenn wir beispielsweise unsere Einträge aus dem einfachen Eintragsabschnitt in einer Datei namensnewgroups.ldif speichern würden, würde der Befehl, den wir zum Verarbeiten der Datei und zum Hinzufügen der neuen Einträge benötigen würden, ungefähr so ​​aussehen:

ldapadd -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f newgroups.ldif

Sie können auch die Kombinationldapmodify -afür dasselbe Ergebnis verwenden:

ldapmodify -a -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f newgroups.ldif

Wenn Sie das Formatsecond mit der Deklarationchangetype verwenden, möchten Sie den Befehlldapmodify ohne das Flag-a verwenden. Da dieser Befehl und dieses Format für die meisten anderen Änderungen verwendet werden können, ist die Verwendung für die meisten Änderungen wahrscheinlich einfacher. Wenn wir die beiden neuen Benutzerzusätze in einer Datei namensnewusers.ldif speichern, können wir sie zu unserer vorhandenen DIT hinzufügen, indem wir Folgendes eingeben:

ldapmodify -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f newusers.ldif

Auf diese Weise können Sie Ihrem DIT nach Belieben Einträge hinzufügen. Sie können problemlos viele Einträge in einer einzigen LDIF-Datei speichern und Ihre DIT mit einem einzigen Befehl füllen.

Einträge aus dem DIT löschen

Wir hatten unseren ersten Blick auf die Optionchangetypeim letzten Abschnitt. Diese Option bietet die Methode zum Angeben des Modifikationstyps auf hoher Ebene, den wir vornehmen möchten. Beim Löschen eines Eintrags lautet der Wert dieser Option "Löschen".

Das Löschen von Einträgen ist die einfachste Änderung, die Sie durchführen können, da nur der DN als Information benötigt wird.

Wenn wir beispielsweise den Eintragou=othergroupaus unserer DIT entfernen möchten, muss unsere LDIF-Datei nur Folgendes enthalten:

dn: ou=othergroup,dc=example,dc=com
changetype: delete

Um die Änderung zu verarbeiten, können Sie das genaue Format verwenden, das mitldapmodify oben verwendet wurde. Wenn wir die Datei mit der Löschanforderungrmothergroup.ldif aufrufen, wenden wir sie folgendermaßen an:

ldapmodify -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f rmothergroup.ldif

Dadurch wird der Eintragou=othergroupofort aus dem System entfernt.

Ändern der Attribute eines Eintrags

Das Ändern der Attribute eines Eintrags ist eine sehr häufige Änderung, die durch Angabe vonchangetype: modify nach dem DN des Eintrags ermöglicht wird. Die Arten von Änderungen, die Sie an Attributen vornehmen können, spiegeln hauptsächlich die Änderungen wider, die Sie an einem Eintrag selbst vornehmen können. Aus diesem Grund werden die Details der Art der angeforderten Attributänderung anschließend mithilfe zusätzlicher Anweisungen angegeben.

Hinzufügen eines Attributs zu einem Eintrag

Sie können beispielsweise ein Attribut hinzufügen, indem Sie den Befehladd: nachchangetype: modify verwenden. Dies sollte das Attribut angeben, das Sie hinzufügen möchten. Sie würden dann den Wert des Attributs wie normal einstellen. Das Grundformat wäre also:

dn: entry_to_add_attribute
changetype: modify
add: attribute_type
attribute_type: value_to_set

Um beispielsweise einige E-Mail-Adressen zu unseren Konten hinzuzufügen, könnten wir eine LDIF-Datei haben, die so aussieht:

dn: uid=sbrown20,ou=People,dc=example,dc=com
changetype: modify
add: mail
mail: [email protected]

dn: uid=jsmith1,ou=People,dc=example,dc=com
changetype: modify
add: mail
mail: [email protected]
mail: [email protected]

Wie Sie aus dem zweiten Eintrag ersehen können, können Sie mehrere Ergänzungen gleichzeitig angeben. Das Attributmail erlaubt mehrere Werte, daher ist dies zulässig.

Sie können dies wie gewohnt mitldapmodify verarbeiten. Wenn sich die Änderung in der Dateisbrownaddmail.ldif befindet, können Sie Folgendes eingeben:

ldapmodify -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f sbrownaddmail.ldif

Ersetzen des Werts eines Attributs in einem Eintrag

Eine weitere häufige Änderung besteht darin, den vorhandenen Wert für ein Attribut zu ändern. Wir können dies mit der Optionreplace: unterchangetype: modify tun.

Dies funktioniert fast genauso wie der Befehladd:, entfernt jedoch standardmäßig jedes vorhandene Vorkommen des Attributs aus dem Eintrag und ersetzt es durch die anschließend definierten Werte. Wenn wir beispielsweise feststellen, dass unser letzter Befehladd:eine falsche E-Mail-Adresse hatte, können wir ihn mit dem Befehlreplacewie folgt ändern:

dn: uid=sbrown20,ou=People,dc=example,dc=com
changetype: modify
replace: mail
mail: [email protected]

Beachten Sie, dass dies dieevery-Instanz vonmail im Eintrag ersetzt. Dies ist wichtig für mehrwertige Attribute, die mehr als einmal pro Eintrag definiert werden können (z. B.mail). Wenn Sie nur ein einzelnes Vorkommen eines Attributs ersetzen möchten, sollten Sie die Option des Attributsdelete:(siehe unten) in Kombination mit der Option des Attributsadd:(siehe oben) verwenden.

Wenn diese Änderung in einer Datei namenssbrownchangemail.ldif gespeichert wurde, können wir Sallys E-Mail ersetzen, indem wir Folgendes eingeben:

ldapmodify -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f sbrownchangemail.ldif

Attribute aus einem Eintrag löschen

Wenn Sie ein Attribut aus einem Eintrag entfernen möchten, können Sie den Befehldelete: verwenden. Sie geben das zu löschende Attribut als Wert der Option an. Wenn Sie eine bestimmte Instanz des Attributs löschen möchten, können Sie in der folgenden Zeile das bestimmte Vorkommen des Schlüsselwertattributs angeben. Andernfalls wird jedes Vorkommen dieses Attributs im Eintrag entfernt.

Dies würde beispielsweise jedes Beschreibungsattribut in John Smiths Eintrag löschen:

dn: uid=jsmith1,ou=People,dc=example,dc=com
changetype: modify
delete: description

Dies würde jedoch nur die angegebene E-Mail löschen:

dn: uid=jsmith1,ou=People,dc=example,dc=com
changetype: modify
delete: mail
mail: [email protected]

Da wir John zuvor zwei E-Mail-Adressen gegeben haben, sollte die andere E-Mail-Adresse durch diese Anfrage unverändert bleiben.

Wenn diese Änderungen in Dateien mit den Namenjsmithrmdesc.ldif undjsmithrmextramail.ldif enthalten wären, könnten wir sie anwenden, indem wir Folgendes eingeben:

ldapmodify -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f jsmithrmdesc.ldif
ldapmodify -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f jsmithrmextramail.ldif

Angeben mehrerer Attributänderungen

Dies ist ein guter Zeitpunkt, um über das gleichzeitige Angeben mehrerer Attributänderungen zu sprechen. Für einen einzelnen Eintrag in einer LDIF-Datei können Sie mehrere Attributänderungen angeben, indem Sie sie durch eine Zeile trennen, die nur mit dem Zeichen-gefüllt ist. Nach dem Trennzeichen muss der Attributänderungstyp angegeben und die erforderlichen Attribute angegeben werden.

Beispielsweise könnten wir Johns verbleibendes E-Mail-Attribut löschen, seinen Namen in "Johnny Smith" ändern und seinen Speicherort hinzufügen, indem wir eine Datei mit folgendem Inhalt erstellen:

dn: uid=jsmith1,ou=People,dc=example,dc=com
changetype: modify
delete: mail
-
replace: cn
cn: Johnny Smith
-
add: l
l: New York

Um all diese Änderungen in einem Befehl anzuwenden, verwenden wir dasselbeldapmodify-Format, das wir die ganze Zeit verwendet haben:

ldapmodify -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f multichange.ldif

Einträge umbenennen und verschieben

Mit der Optionchangetype: modrdn können vorhandene Einträge umbenannt oder verschoben werden. Nachdem Sie diedn: festgelegt haben, auf die Sie abzielen möchten, setzen Sie die Optionchangetype: modrdn.

Eintrag umbenennen

Nehmen wir an, wir haben Sallys Benutzernamen falsch eingegeben, als wir ihn zum ersten Mal in das System eingegeben haben. Da dies im DN des Eintrags verwendet wird, kann es nicht einfach durch die Optionenchangetype: modify undreplace:ersetzt werden, da die RDN des Eintrags ungültig wäre. Wenn ihr wirklicher Benutzernamesbrown200 ist, können wir den DN des Eintrags ändern und dabei alle erforderlichen Attribute mit einer LDIF-Datei wie der folgenden erstellen:

dn: uid=sbrown20,ou=People,dc=example,dc=com
changetype: modrdn
newrdn: uid=sbrown200
deleteoldrdn: 0

Wir könnten diese Änderung mit diesem Befehl anwenden:

ldapmodify -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f fixsallydn.ldif

Dies würde den kompletten Eintrag ungefähr so ​​aussehen lassen:

dn: uid=sbrown200,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
description: Sally Brown from engineering.  Sally is responsibl
 e for designing the blue prints and testing the structural int
 egrity of the design.
cn: Sally Brown
sn: Brown
uid: sbrown20
uid: sbrown200
mail: [email protected]

Wie Sie sehen, wurde Ihr DM angepasst, um das neue Attribut / Wert-Paar zu verwenden. Das Attribut wurde dem Eintrag hinzugefügt, um dies zu ermöglichen.

Sie haben im obigen Beispiel möglicherweise zwei Dinge bemerkt. Zuerst setzen wir eine Option namensdeleteoldrdn auf "0". Zweitens hat der resultierende Eintrag sowohluid: sbrown20 als auchuid: sbrown200.

Die Optiondeleteoldrdn muss festgelegt werden, wenn der DN eines Eintrags geändert wird. Wenn Siedeleteoldrdn auf "0" setzen, behält LDAP das im DN verwendete alte Attribut neben dem neuen Attribut im Eintrag bei. Manchmal ist es das, was Sie möchten, aber oft möchten Sie das alte Attribut vollständig aus dem Eintrag entfernen, nachdem sich der DN geändert hat. Sie können dies tun, indem Sie stattdessendeleteoldrdn auf „1“ setzen.

Stellen wir uns vor, wir hätten erneut einen Fehler gemacht und Sallys tatsächlicher Benutzername istsbrown2. Wir könnendeleteoldrdn auf "1" setzen, um die Instanz vonsbrown200, die derzeit im DN verwendet wird, aus dem Eintrag nach dem Umbenennen zu entfernen. Wir werden ein zusätzliches Paarchangetype: modify unddelete: einfügen, um den anderen streunenden Benutzernamensbrown20 zu entfernen, da wir diesen beim ersten Umbenennen beibehalten haben:

dn: uid=sbrown200,ou=People,dc=example,dc=com
changetype: modrdn
newrdn: uid=sbrown2
deleteoldrdn: 1

dn: uid=sbrown2,ou=People,dc=example,dc=com
changetype: modify
delete: uid
uid: sbrown20

Wenden Sie die Datei folgendermaßen an:

ldapmodify -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f fix2sallydn.ldif

Diese Kombination fügt mit der Änderung keinen neuen Benutzernamen hinzu (sbrown200 wird entfernt), und die zweite Eintragsänderung entfernt den ursprünglichen Wert des Benutzernamens (sbrown20).

Eintrag verschieben

Wenn Sie den Eintrag an einen neuen Speicherort verschieben müssen, ist die Optionnewsuperior: eine zusätzliche Einstellung fürchangetype: modrdn. Wenn Sie diese Option verwenden, können Sie eine neue Position auf dem DIT angeben, an die der Eintrag verschoben werden soll. Dadurch wird der Eintrag während der Änderung unter dem angegebenen übergeordneten DN platziert.

Wenn wir beispielsweise Sally unter den Eintragou=superusersverschieben möchten, können wir diesen Eintrag hinzufügen und sie dann durch Eingabe von: dorthin verschieben.

dn: ou=superusers,dc=example,dc=com
changetype: add
objectClass: organizationalUnit
ou: superusers

dn: uid=sbrown2,ou=People,dc=example,dc=com
changetype: modrdn
newrdn: uid=sbrown2
deleteoldrdn: 0
newsuperior: ou=superusers,dc=example,dc=com

Angenommen, dies wird in einer Datei namensmksuperuser.ldif gespeichert, könnten wir die Änderungen wie folgt anwenden:

ldapmodify -x -D "cn=admin,dc=example,dc=com" -w password -H ldap:// -f mksuperuser.ldif

Dies führt zu einem Umzug und niemals zu einer Kopie.

In diesem Fall wollten wir die RDN des Eintrags nicht ändern, daher setzen wir den Wert vonnewrdn:auf den gleichen Wert, den er derzeit hat. Wir könnten uns aber auch während des Umzugs leicht umbenennen, wenn wir es wünschen. In diesem Fall ist die Einstellungnewsuperior:die einzige Zeile der zweiten Änderung, die sich tatsächlich auf den Status des Eintrags auswirkt.

Nebenbei: Hinzufügen von Binärdaten zu einem Eintrag

Dieser Abschnitt unterscheidet sich von den obigen Informationen, da er in die Abschnitte zum Erstellen eines Eintrags oder zum Definieren zusätzlicher Attribute passen kann.

LDAP kann Binärdaten für bestimmte Attribute speichern. Beispielsweise erlaubt die KlasseinetOrgPerson ein Attribut namensjpegPhoto, mit dem das Foto oder das Benutzersymbol einer Person gespeichert werden kann. Ein weiteres Attribut dieser objectClass, das Binärdaten verwenden kann, ist das Attributaudio.

Um diese Art von Daten zu einem LDAP-Eintrag hinzuzufügen, müssen Sie ein spezielles Format verwenden. Verwenden Sie beim Angeben des Attributs unmittelbar nach dem Doppelpunkt ein kleineres Zeichen (<) und ein Leerzeichen. Geben Sie anschließend den Pfad zu der betreffenden Datei an.

Wenn Sie beispielsweise eine Datei mit dem Namenjohn.jpg im Verzeichnis/tmp haben, können Sie die Datei mit einer LDIF-Datei, die folgendermaßen aussieht, zu Johns Eintrag hinzufügen:

dn: uid=jsmith1,ou=People,dc=example,dc=com
changetype: modify
add: jpegPhoto
jpegPhoto:< file:///tmp/john.jpg

Achten Sie genau auf die Position des Doppelpunkts, weniger als Zeichen und Leerzeichen. Wenn sich Ihre Datei auf der Festplatte befindet, kann das Präfixfile://verwendet werden. Der Pfad fügt einen zusätzlichen Schrägstrich hinzu, um das Stammverzeichnis anzugeben, wenn Sie einen absoluten Pfad verwenden.

Dies würde mit einer Audiodatei genauso funktionieren:

dn: uid=jsmith1,ou=People,dc=example,dc=com
changetype: modify
add: audio
audio:< file:///tmp/hellojohn.mp3

Sobald Sie die LDIF-Datei verarbeitet haben, wird die eigentliche Datei in Ihrem LDAP-Verzeichnisdienst verschlüsselt. Beachten Sie dies unbedingt, da sich das Hinzufügen einer großen Anzahl solcher Dateien auf die Größe und Leistung Ihres Dienstes auswirkt.

Wenn Sie die codierten Daten mit dem Toolldapsearch abrufen müssen, müssen Sie das Flag-t hinzufügen, damit die Datei in das Verzeichnis/tmp geschrieben werden kann. Der generierte Dateiname wird in den Ergebnissen angezeigt.

Zum Beispiel könnten wir diesen Befehl verwenden, um die Binärdaten in eine temporäre Datei zu schreiben:

ldapsearch -LLL -x -H ldap:// -t -b "dc=example,dc=com" "uid=jsmith1"

Das Suchergebnis sieht folgendermaßen aus:

ldapsearch-Ausgabe

dn: uid=jsmith1,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
sn: Smith
uid: jsmith1
cn: Johnny Smith
l: New York
audio:< file:///tmp/ldapsearch-audio-n5GRF6

Wenn wir in das Verzeichnis/tmpgehen, können wir die Datei finden. Es kann nach Bedarf umbenannt werden und sollte sich in dem genauen Zustand befinden, in dem es sich befand, bevor es in das Verzeichnis eingegeben wurde.

Seien Sie vorsichtig, wenn Sie diesen Vorgang wiederholt ausführen, da bei jeder Suche eine neue Datei ausgeschrieben wird. Sie könnten leicht eine Diskette füllen, ohne es zu merken, wenn Sie nicht aufpassen.

Fazit

Inzwischen sollten Sie ein gutes Verständnis dafür haben, wie Sie die Einträge in einem LDAP-Verzeichnisinformationsbaum mit LDIF-formatierten Dateien und einigen Tools bearbeiten können. Während bestimmte LDAP-Clients LDIF-Dateien für den täglichen Betrieb möglicherweise überflüssig machen, können LDIF-Dateien die beste Möglichkeit sein, Batch-Vorgänge an Ihren DIT-Einträgen durchzuführen. Es ist auch wichtig zu wissen, wie Sie Ihre Einträge mit diesen Methoden zu Verwaltungszwecken ändern, wenn Sie den anfänglichen Verzeichnisdienst einrichten und Probleme beheben, die Clients möglicherweise daran hindern, korrekt auf Ihre Daten zuzugreifen.