LDIF(5)

НАЗВАНИЕ

ldif - Формат обмена данными LDAP.

ОПИСАНИЕ

Формат обмена данными LDAP (LDAP Data Interchange Format, LDIF) используется для представления сведений о записях LDAP и сведений об изменениях каталога LDAP в текстовой форме. С LDIF работают инструменты LDAP: ldapadd(1) принимает на вход, а ldapsearch (1) выводит LDIF-сведения о записях, ldapmodify(1) принимает на вход LDIF-сведения об изменениях.

В этой man-странице приведено описание основных моментов LDIF. Формальная спецификация LDIF дана в RFC 2849.

СВЕДЕНИЯ О ЗАПИСЯХ

LDIF-сведения о записях используются для представления записей каталога. Общая форма сведений о записи:

        dn: <distinguished name>
        <attrdesc>: <attrvalue>
        <attrdesc>: <attrvalue>
        <attrdesc>:: <base64-encoded-value>
        <attrdesc>:< <URL>
        ...

Значение атрибута может быть указано как текст UTF-8, либо как данные, закодированные в base64, либо для указания места расположения значения атрибута может быть предоставлен URI.

Строка может быть продолжена путём помещения в начало следующей строки одного символа пробела или табуляции, например:

        dn: cn=Barbara J Jensen,dc=exam
         ple,dc=com

Строки, начинающиеся с символа решётки (’#’), игнорируются.

Несколько значений одного атрибута указываются в отдельных строках, например:

        cn: Barbara J Jensen
        cn: Babs Jensen

Если значение атрибута содержит непечатный символ, или начинается с пробела или двоеточия ’:’, за полем <attrtype> следуют двойное двоеточие и значение, закодированное в нотации base64. Например, значение " begins with a space" будет закодировано так:

        cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U=

Если значение атрибута располагается в файле, за полем <attrtype> следуют знаки ’:<’ и URI со схемой file:. Например, значение, содержащееся в файле /tmp/value, будет указано так:

        cn:< file:///tmp/value
Могут также поддерживаться другие схемы URI (ftp, http).

Несколько записей в одном файле LDIF отделяются друг от друга пустыми строками.

ПРИМЕР СВЕДЕНИЙ О ЗАПИСИ

Вот пример LDIF-файла, содержащего три записи:

        dn: cn=Barbara J Jensen,dc=example,dc=com
        cn: Barbara J Jensen
        cn: Babs Jensen
        objectclass: person
        description:< file:///tmp/babs
        sn: Jensen

        dn: cn=Bjorn J Jensen,dc=example,dc=com         cn: Bjorn J Jensen         cn: Bjorn Jensen         objectclass: person         sn: Jensen

        dn: cn=Jennifer J Jensen,dc=example,dc=com         cn: Jennifer J Jensen         cn: Jennifer Jensen         objectclass: person         sn: Jensen         jpegPhoto:: /9j/4AAQSkZJRgABAAAAAQABAAD/2wBDABALD          A4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQ          ERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVG         ...

Обратите внимание, что значение атрибута description записи Barbara Jensen считывается из file:///tmp/babs, а значение атрибута jpegPhoto записи Jennifer Jensen закодировано с использованием base64.

СВЕДЕНИЯ ОБ ИЗМЕНЕНИЯХ

LDIF-сведения об изменениях используются для представления запросов на изменение каталога. Каждое сведение об изменении начинается со строки, указывающей уникальное имя изменяемой записи:

        dn: <distinguishedname>

        changetype: <[modify|add|delete|modrdn]>

Наконец, даётся собственно информация об изменении, формат которой зависит от того, какого рода изменение указано выше. Для changetype modify форматом будет один или несколько из приведённых далее фрагментов:

        add: <attributetype>
        <attrdesc>: <value1>
        <attrdesc>: <value2>
        ...
        -

Либо, для модификации replace:

        replace: <attributetype>
        <attrdesc>: <value1>
        <attrdesc>: <value2>
        ...
        -

Если строки со значениями атрибута для замещения не заданы, будут удалены все значения атрибута attributetype (при его наличии в записи).

Либо, для модификации delete:

        delete: <attributetype>
        <attrdesc>: <value1>
        <attrdesc>: <value2>
        ...
        -

Если строки со значениями атрибута для удаления не заданы, будут удалены все значения атрибута attributetype.

Фомат для changetype add:

        <attrdesc1>: <value1>
        <attrdesc1>: <value2>
        ...
        <attrdescN>: <value1>
        <attrdescN>: <value2>

Формат для changetype modrdn или moddn:

        newrdn: <newrdn>
        deleteoldrdn: 0 | 1
        newsuperior: <DN>

Здесь значение 1 в строке deleteoldrdn указывает, что значения атрибутов, формировавшие прежний rdn, должны быть удалены из записи, а значение 0 - что эти значения должны быть оставлены в записи в качестве неотличительных значений атрибутов. Строка newsuperior является опциональной. Если она задана, в ней указывается новая вышестоящая запись, к которой будет перемещена изменяемая запись.

Для changetype delete никакой дополнительной информации указывать не требуется.

Имейте ввиду, что значения атрибутов могут быть представлены в закодированном в base64 виде, либо взяты из файлов, так же, как и в сведениях о записях. Строки в сведениях об изменениях могут быть разбиты на несколько по тем же правилам, что и в сведениях о записях.

ПРИМЕР СВЕДЕНИЙ ОБ ИЗМЕНЕНИЯХ

В следующем LDIF-файле присутствуют сведения об изменениях каждого типа:

        dn: cn=Babs Jensen,dc=example,dc=com
        changetype: add
        objectclass: person
        objectclass: extensibleObject
        cn: babs
        cn: babs jensen
        sn: jensen

        dn: cn=Babs Jensen,dc=example,dc=com         changetype: modify         add: givenName         givenName: Barbara         givenName: babs         -         replace: description         description: the fabulous babs         -         delete: sn         sn: jensen         -

        dn: cn=Babs Jensen,dc=example,dc=com         changetype: modrdn         newrdn: cn=Barbara J Jensen         deleteoldrdn: 0         newsuperior: ou=People,dc=example,dc=com

        dn: cn=Barbara J Jensen,ou=People,dc=example,dc=com         changetype: delete

ВЫРАЖЕНИЕ INCLUDE

Разборщик LDIF был расширен: добавлена поддержка выражения include для ссылки на другие файлы LDIF. Выражение include должно отделяться от других сведений пустой строкой. Файл, на который делается ссылка, указывается с использованием URI со схемой file:. Всё содержимое данного файла встраивается в оригинальный файл, как если бы оно было его составной частью. Также могут поддерживаться URI с другими схемами. Пример:

        dn: dc=example,dc=com
        objectclass: domain
        dc: example

        include: file:///tmp/example.com.ldif

        dn: dc=example,dc=org         objectclass: domain         dc: example

Данный функционал не является составной частью спецификации LDIF, данной в RFC 2849, однако ожидается, что он появится в будущих версиях этой спецификации. Он поддерживается командами ldapadd(1), ldapmodify(1) и slapadd(8).

СМОТРИТЕ ТАКЖЕ

ldap(3), ldapsearch(1), ldapadd(1), ldapmodify(1), slapadd(8), slapcat(8), slapd-ldif(5).

"Формат обмена данными LDAP", Good, G., RFC 2849.

ПРИЗНАНИЕ ЗАСЛУГ

Программное обеспечение OpenLDAP разработано и поддерживается проектом OpenLDAP <http://www.openldap.org/>. Программное обеспечение OpenLDAP является производным от релиза 3.3 LDAP Мичиганского Университета.


OpenLDAP 2.4.45 LDIF (5) 2017/06/01
Страница сгенерирована с использованием manServer 1.07.