📄LDIF – LDAP Data Interchange Format
LDIF ist das Textformat für Einträge und Änderungen: Export mit
slapcat/ldapsearch, Import mit ldapadd/slapadd, Änderungen mit ldapmodify. Leerzeilen trennen Datensätze, # leitet Kommentare ein.🛠️LDIF-Werkstatt
Bearbeite das LDIF, lies die Prüfung und wende es auf eine frische Kopie der Beispieldaten an – mit denselben Result-Codes, die slapd liefert.
🩺 Prüfung
✅ Keine Syntaxfehler – 4 Datensätze.
📦 Datensätze
modifyuid=anna.schmidt,ou=people,dc=example,dc=org
- replace mail ← anna@example.org
- add description ← Teamleitung Vertrieb Nord
- delete telephoneNumber (alle Werte)
modifycn=technik,ou=groups,dc=example,dc=org
- add member ← uid=anna.schmidt,ou=people,dc=example,dc=org
modrdnuid=eva.fischer,ou=people,dc=example,dc=org
newrdn uid=eva.klein, deleteoldrdn 1
deletecn=admins,ou=groups,dc=example,dc=org
📚 Quellen: RFC 2849 – The LDAP Data Interchange Format (LDIF) · ldif(5) · ldapmodify(1)
🔐Base64 und Zeilenumbruch
Nur „sichere“ Werte dürfen im Klartext stehen: ASCII ohne CR, LF und NUL, nicht beginnend mit Leerzeichen, „:“ oder „<“. Alles andere wird mit „::“ Base64-kodiert – deshalb sehen Umlaute in slapcat-Ausgaben so kryptisch aus.
🔐 Base64 nötig: enthält „ö“ (U+00F6) – nicht in SAFE-CHAR (nur ASCII ohne CR/LF/NUL)
UTF-8-Bytes
4a c3 b6 72 67 20 57 65 69 c3 9fBase64 dieser Bytes
SsO2cmcgV2Vpw58=LDIF-Zeile
cn:: SsO2cmcgV2Vpw58=
Abschalten bei ldapsearch/slapcat: -o ldif_wrap=no
📚 Quellen: RFC 2849 – The LDAP Data Interchange Format (LDIF) · ldapsearch(1)
📐Die vier Änderungsarten
dn: uid=gina.lang,ou=people,dc=example,dc=org changetype: add objectClass: inetOrgPerson uid: gina.lang cn: Gina Lang sn: Lang
dn: uid=anna.schmidt,ou=people,dc=example,dc=org changetype: modify replace: mail mail: anna@example.org - add: description description: Teamleitung - delete: telephoneNumber -
dn: uid=eva.fischer,ou=people,dc=example,dc=org changetype: modrdn newrdn: uid=eva.klein deleteoldrdn: 1 newsuperior: ou=alumni,dc=example,dc=org
dn: cn=admins,ou=groups,dc=example,dc=org changetype: delete
⚠️ Der Trennstrich zählt
Jeder Block in
changetype: modify endet mit einer Zeile -. Fehlt er, liest ldapmodify die nächste Zeile als weiteren Wert für dasselbe Attribut – und scheitert mit einem verwirrenden Fehler.💡 Atomar pro Eintrag
Alle Änderungen eines modify-Datensatzes werden gemeinsam angewendet oder gar nicht. Über mehrere Datensätze hinweg gibt es dagegen keine Transaktion: ohne
-c bricht ldapmodify beim ersten Fehler ab, bereits Geschriebenes bleibt.📚 Quellen: RFC 2849 – The LDAP Data Interchange Format (LDIF)