5.3. LDIF 格式详解

LDAP 数据交换格式 (LDIF) 用于以简单的文本格式表示 LDAP 条目。条目的基本形式是

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

以 '#' 字符开头的行是注释。属性描述 (attrdesc) 可以是简单的属性类型,例如 cn 或 objectClass 或 1.2.3 (与属性类型关联的 OID),或者可以包含选项,例如 cn;lang_en_US 或 userCertificate;binary。

可以通过在新行以单个空格或制表符开头来延续一行。例如

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

等同于

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

多个属性值在单独的行中指定。例如,

cn: Barbara J Jensen
cn: Babs Jensen

如果 <attrvalue> 包含非打印字符或以空格、双冒号 (':') 或小于号 ('<') 开头,则 <attrdesc> 后跟双冒号和值的 base64 编码。例如,值 " begins with a space" 将像这样编码

cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U=

您还可以指定包含属性值的 URL。例如,以下指定应从文件 /path/to/file.jpeg 获取 jpegPhoto 值。

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

同一 LDIF 文件中的多个条目用空行分隔。这是一个包含三个条目的 LDIF 文件示例。

# 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

请注意,Bjorn 条目中的 jpegPhoto 是 base64 编码的,而 Jennifer 条目中的 jpegPhoto 是从 URL 指示的位置获取的。

LDIF 文件中值末尾的空格不会被删除。内部的多个空格也不会被压缩。如果您不希望数据中包含它们,请不要在那里放置它们。