LDIF (LDAP Data Interchange Format) is the text format used to import/export LDAP data and to make changes. Used with ldapadd, ldapmodify, and ldapdelete command-line tools.
| Item | Syntax / Value | Description |
|---|---|---|
| LDIF entry | dn: uid=alice,ou=users,dc=mwu,dc=com\nobjectClass: inetOrgPerson\nuid: alice\n... | Basic LDIF entry for adding a user |
| dn: | dn: uid=alice,ou=users,dc=mwu,dc=com | Distinguished Name — first line of every entry |
| objectClass: | objectClass: inetOrgPerson | Object class — can appear multiple times |
| attribute: | mail: alice@example.com | Attribute: value pair |
| Base64 value | userPassword:: e1NTSEF9...== | Double colon :: means base64-encoded value |
| URL value | jpegPhoto:< file:///path/photo.jpg | < means value is loaded from URL/file |
| Comment | # This is a comment | Lines starting with # are comments |
| Blank line | (empty line) | Separates entries in LDIF files |
| changetype: add | changetype: add | Add a new entry |
| changetype: modify | changetype: modify | Modify an existing entry |
| add: attribute | add: telephoneNumber\ntelephoneNumber: +1-555-0200 | Add attribute value |
| replace: attribute | replace: mail\nmail: newemail@example.com | Replace attribute value |
| delete: attribute | delete: telephoneNumber | Delete all values of attribute |
| delete specific | delete: telephoneNumber\ntelephoneNumber: +1-555-0100 | Delete specific attribute value |
| - | - (hyphen on its own line) | Separate modification operations in changetype: modify |
| changetype: delete | changetype: delete | Delete an entry |
| changetype: modrdn | changetype: modrdn\nnewrdn: uid=alice2\ndeleteoldrdn: 1 | Rename entry |
| newsuperior: | newsuperior: ou=alumni,dc=mwu,dc=com | Move entry to different parent |
| version: 1 | version: 1 | LDIF version declaration (optional but recommended) |
| Continuation | (space at start of continuation line) | Long values wrap with space indent |
# ── LDIF file: add_users.ldif ────────────────────────────────
version: 1
# Add organizational units first
dn: ou=users,dc=mywebuniversity,dc=com
changetype: add
objectClass: top
objectClass: organizationalUnit
ou: users
description: All user accounts
dn: ou=groups,dc=mywebuniversity,dc=com
changetype: add
objectClass: top
objectClass: organizationalUnit
ou: groups
description: All groups
# Add user Alice
dn: uid=alice,ou=users,dc=mywebuniversity,dc=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: alice
cn: Alice Smith
sn: Smith
givenName: Alice
displayName: Alice Smith
mail: alice@mywebuniversity.com
telephoneNumber: +1-555-0101
title: Senior Developer
departmentNumber: Engineering
employeeNumber: 1001
uidNumber: 10001
gidNumber: 5000
homeDirectory: /home/alice
loginShell: /bin/bash
userPassword: {SSHA}base64encodedhashedpassword==
# Add user Bob
dn: uid=bob,ou=users,dc=mywebuniversity,dc=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
uid: bob
cn: Bob Jones
sn: Jones
givenName: Bob
mail: bob@mywebuniversity.com
uidNumber: 10002
gidNumber: 5000
homeDirectory: /home/bob
loginShell: /bin/bash
# Add group
dn: cn=developers,ou=groups,dc=mywebuniversity,dc=com
changetype: add
objectClass: top
objectClass: groupOfNames
objectClass: posixGroup
cn: developers
gidNumber: 5001
member: uid=alice,ou=users,dc=mywebuniversity,dc=com
member: uid=bob,ou=users,dc=mywebuniversity,dc=com
description: Development team
# ── modify.ldif — modify existing entries ────────────────────
# Update Alice's phone and add manager
dn: uid=alice,ou=users,dc=mywebuniversity,dc=com
changetype: modify
replace: telephoneNumber
telephoneNumber: +1-555-0200
-
add: manager
manager: uid=dave,ou=users,dc=mywebuniversity,dc=com
-
add: description
description: Lead developer, Python team
-
# Add Carol to developers group
dn: cn=developers,ou=groups,dc=mywebuniversity,dc=com
changetype: modify
add: member
member: uid=carol,ou=users,dc=mywebuniversity,dc=com
-
# ── Apply with ldapadd / ldapmodify ──────────────────────────
# ldapadd -x -H ldap://localhost -D "cn=admin,dc=mwu,dc=com" -W -f add_users.ldif
# ldapmodify -x -H ldap://localhost -D "cn=admin,dc=mwu,dc=com" -W -f modify.ldif
# ldapdelete -x -H ldap://localhost -D "cn=admin,dc=mwu,dc=com" -W "uid=bob,ou=users,dc=mwu,dc=com"