More on the LDIF Format

LDAP Linux HOWTO
Prev | Chapter 5. Database Creation and Maintenance | Next

# 5.3. More on the LDIF Format

The LDAP Data Interchange Format (LDIF) is used to represent LDAP entries in a simple text format. The basic form of an entry is:

    #comment
    dn: <distinguished name>
    <attrdesc>: <attrvalue>
    <attrdesc>: <attrvalue>
    ...

Lines starting with a '#' character are comments. An attribute description (attrdesc) may be a simple attribute type like cn or objectClass or 1.2.3 (an OID associated with an attribute type) or may include options such as cn;lang_en_US or userCertificate;binary.

A line may be continued by starting the next line with a single space or tab character. For example:

    dn: cn=Barbara J Jensen, dc=example, dc=
     com
    cn: Barbara J
        Jensen

is equivalent to:

    dn: cn=Barbara J Jensen, dc=example, dc=com
    cn: Barbara J Jensen

Multiple attribute values are specified on separate lines. e.g.,

    cn: Barbara J Jensen
    cn: Babs Jensen

If an <attrvalue> contains non-printing characters or begins with a space, a double colon (':'), or a less than ('<'), the <attrdesc> is followed by a double colon and the base64 encoding of the value. For example, the value " begins with a space" would be encoded like this:

    cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U=

You can also specify a URL containing the attribute value. For example, the following specifies the jpegPhoto value should be obtained from the file /path/to/file.jpeg.

    cn:< file://path/to/file.jpeg

Multiple entries within the same LDIF file are separated by blank lines. Here's an example of an LDIF file containing three entries.

    # Barbara's Entry
    dn: cn=Barbara J Jensen, dc=example, dc=com
    cn: Barbara J Jensen
    cn: Babs Jensen
    objectClass: person
    sn: Jensen

    # Bjorn's Entry
    dn: cn=Bjorn J Jensen, dc=example, dc=com
    cn: Bjorn J Jensen
    cn: Bjorn Jensen
    objectClass: person
    sn: Jensen
    # Base64 encoded JPEG photo
    jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD
    A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQ
    ERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG

    # Jennifer's Entry
    dn: cn=Jennifer J Jensen, dc=example, dc=com
    cn: Jennifer J Jensen
    cn: Jennifer Jensen
    objectClass: person
    sn: Jensen
    # JPEG photo from file
    jpegPhoto:< file://path/to/file.jpeg

Notice that the jpegPhoto in Bjorn's entry is base 64 encoded and the jpegPhoto in Jennifer's entry is obtained from the location indicated by the URL.

Trailing spaces are not trimmed from values in an LDIF file. Nor are multiple internal spaces compressed. If you don't want them in your data, don't put them there.

Prev | Home | Next
Creating a Database offline | Up | The ldapsearch, ldapdelete and ldapmodify utilities