2002-06-13 11:59:10 +08:00
|
|
|
.TH LDIF 5 "RELEASEDATE" "OpenLDAP LDVERSION"
|
1999-09-12 12:41:47 +08:00
|
|
|
.\" $OpenLDAP$
|
2007-01-03 04:00:42 +08:00
|
|
|
.\" Copyright 1998-2007 The OpenLDAP Foundation All Rights Reserved.
|
1999-09-12 12:41:47 +08:00
|
|
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH NAME
|
|
|
|
ldif \- LDAP Data Interchange Format
|
|
|
|
.SH DESCRIPTION
|
|
|
|
The LDAP Data Interchange Format (LDIF) is used to represent LDAP
|
2005-11-25 03:26:44 +08:00
|
|
|
entries and change records in text form. LDAP tools, such as
|
2006-12-20 22:25:06 +08:00
|
|
|
.BR ldapadd (1)
|
|
|
|
and
|
|
|
|
.BR ldapsearch (1),
|
|
|
|
read and write LDIF entry
|
|
|
|
records.
|
|
|
|
.BR ldapmodify (1)
|
|
|
|
reads LDIF change records.
|
2005-11-25 03:26:44 +08:00
|
|
|
.LP
|
|
|
|
This manual page provides a basic description of LDIF. A
|
|
|
|
formal specification of LDIF is published in RFC 2849.
|
|
|
|
.SH ENTRY RECORDS
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
2005-11-25 03:26:44 +08:00
|
|
|
LDIF entry records are used to represent directory entries. The basic
|
|
|
|
form of an entry record is:
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
.ft tt
|
2005-11-25 03:26:44 +08:00
|
|
|
dn: <distinguished name>
|
|
|
|
<attrdesc>: <attrvalue>
|
|
|
|
<attrdesc>: <attrvalue>
|
|
|
|
<attrdesc>:: <base64-encoded-value>
|
|
|
|
<attrdesc>:< <URL>
|
|
|
|
...
|
1998-08-09 08:43:13 +08:00
|
|
|
.ft
|
|
|
|
.fi
|
|
|
|
.LP
|
2000-06-19 03:41:49 +08:00
|
|
|
The value may be specified as UTF-8 text or as base64 encoded data,
|
|
|
|
or a URI may be provided to the location of the attribute value.
|
1999-08-18 04:25:16 +08:00
|
|
|
.LP
|
|
|
|
A line may be continued by starting the next line with a single space
|
|
|
|
or tab, e.g.,
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
.ft tt
|
2005-11-25 03:26:44 +08:00
|
|
|
dn: cn=Barbara J Jensen,dc=exam
|
|
|
|
ple,dc=com
|
1998-08-09 08:43:13 +08:00
|
|
|
.ft
|
|
|
|
.fi
|
|
|
|
.LP
|
2005-07-04 14:57:10 +08:00
|
|
|
Lines beginning with a sharp sign ('#') are ignored.
|
2000-06-19 03:41:49 +08:00
|
|
|
.LP
|
1998-08-09 08:43:13 +08:00
|
|
|
Multiple attribute values are specified on separate lines, e.g.,
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
.ft tt
|
2005-11-25 03:26:44 +08:00
|
|
|
cn: Barbara J Jensen
|
|
|
|
cn: Babs Jensen
|
1998-08-09 08:43:13 +08:00
|
|
|
.ft
|
|
|
|
.fi
|
|
|
|
.LP
|
1999-08-18 04:25:16 +08:00
|
|
|
If an value contains a non-printing character, or begins
|
|
|
|
with a space or a colon ':', the <attrtype> is followed by a
|
|
|
|
double colon and the value is encoded in base 64 notation. e.g.,
|
|
|
|
the value " begins with a space" would be encoded like this:
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
.ft tt
|
2005-11-25 03:26:44 +08:00
|
|
|
cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U=
|
1998-08-09 08:43:13 +08:00
|
|
|
.ft
|
|
|
|
.fi
|
|
|
|
.LP
|
1999-08-18 04:25:16 +08:00
|
|
|
If the attribute value is located in a file, the <attrtype> is
|
2001-10-16 09:16:39 +08:00
|
|
|
followed by a ':<' and a file: URI. e.g., the value contained
|
1999-08-18 04:25:16 +08:00
|
|
|
in the file /tmp/value would be listed like this:
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
.ft tt
|
2005-11-25 03:26:44 +08:00
|
|
|
cn:< file:///tmp/value
|
1999-08-18 04:25:16 +08:00
|
|
|
.ft
|
|
|
|
.fi
|
2000-06-19 03:41:49 +08:00
|
|
|
Other URI schemes (ftp,http) may be supported as well.
|
1999-08-18 04:25:16 +08:00
|
|
|
.LP
|
1998-08-09 08:43:13 +08:00
|
|
|
Multiple entries within the same LDIF file are separated by blank
|
|
|
|
lines.
|
2005-11-25 03:26:44 +08:00
|
|
|
.SH ENTRY RECORD EXAMPLE
|
1998-08-09 08:43:13 +08:00
|
|
|
Here is an example of an LDIF file containing three entries.
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
.ft tt
|
2005-11-25 03:26:44 +08:00
|
|
|
dn: cn=Barbara J Jensen,dc=example,dc=com
|
|
|
|
cn: Barbara J Jensen
|
|
|
|
cn: Babs Jensen
|
|
|
|
objectclass: person
|
|
|
|
description:< file:///tmp/babs
|
|
|
|
sn: Jensen
|
1998-08-09 08:43:13 +08:00
|
|
|
|
2005-11-25 03:26:44 +08:00
|
|
|
dn: cn=Bjorn J Jensen,dc=example,dc=com
|
|
|
|
cn: Bjorn J Jensen
|
|
|
|
cn: Bjorn Jensen
|
|
|
|
objectclass: person
|
|
|
|
sn: Jensen
|
1998-08-09 08:43:13 +08:00
|
|
|
|
2005-11-25 03:26:44 +08:00
|
|
|
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
|
|
|
|
...
|
1998-08-09 08:43:13 +08:00
|
|
|
.ft
|
|
|
|
.fi
|
|
|
|
.LP
|
2005-11-25 03:26:44 +08:00
|
|
|
Note that the description in Barbara Jensen's entry is
|
2004-09-11 23:59:34 +08:00
|
|
|
read from file:///tmp/babs and the jpegPhoto in Jennifer
|
2000-06-19 03:41:49 +08:00
|
|
|
Jensen's entry is encoded using base 64.
|
2005-11-25 03:26:44 +08:00
|
|
|
.SH CHANGE RECORDS
|
|
|
|
LDIF change records are used to represent directory change requests.
|
|
|
|
Each change record starts with line indicating the distinguished
|
|
|
|
name of the entry being changed:
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
dn: <distinguishedname>
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
changetype: <[modify|add|delete|modrdn]>
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
Finally, the change information itself is given, the format of which
|
|
|
|
depends on what kind of change was specified above. For a \fIchangetype\fP
|
|
|
|
of \fImodify\fP, the format is one or more of the following:
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
add: <attributetype>
|
|
|
|
<attrdesc>: <value1>
|
|
|
|
<attrdesc>: <value2>
|
|
|
|
...
|
|
|
|
-
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
Or, for a replace modification:
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
replace: <attributetype>
|
|
|
|
<attrdesc>: <value1>
|
|
|
|
<attrdesc>: <value2>
|
|
|
|
...
|
|
|
|
-
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
If no \fIattributetype\fP lines are given to replace,
|
|
|
|
the entire attribute is to be deleted (if present).
|
|
|
|
.LP
|
|
|
|
Or, for a delete modification:
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
delete: <attributetype>
|
|
|
|
<attrdesc>: <value1>
|
|
|
|
<attrdesc>: <value2>
|
|
|
|
...
|
|
|
|
-
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
If no \fIattributetype\fP lines are given to delete,
|
|
|
|
the entire attribute is to be deleted.
|
|
|
|
.LP
|
|
|
|
For a \fIchangetype\fP of \fIadd\fP, the format is:
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
<attrdesc1>: <value1>
|
|
|
|
<attrdesc1>: <value2>
|
|
|
|
...
|
|
|
|
<attrdescN>: <value1>
|
|
|
|
<attrdescN>: <value2>
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
For a \fIchangetype\fP of \fImodrdn\fP or \fImoddn\fP,
|
|
|
|
the format is:
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
newrdn: <newrdn>
|
|
|
|
deleteoldrdn: 0 | 1
|
|
|
|
newsuperior: <DN>
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
where a value of 1 for deleteoldrdn means to delete the values
|
|
|
|
forming the old rdn from the entry, and a value of 0 means to
|
|
|
|
leave the values as non-distinguished attributes in the entry.
|
|
|
|
The newsuperior line is optional and, if present, specifies the
|
|
|
|
new superior to move the entry to.
|
|
|
|
.LP
|
|
|
|
For a \fIchangetype\fP of \fIdelete\fP, no additional information
|
|
|
|
is needed in the record.
|
|
|
|
.LP
|
|
|
|
Note that attribute values may be presented using base64 or in
|
|
|
|
files as described for entry records. Lines in change records
|
|
|
|
may be continued in the manner described for entry records as
|
|
|
|
well.
|
|
|
|
.SH CHANGE RECORD EXAMPLE
|
|
|
|
The following sample LDIF file contains a change record
|
|
|
|
of each type of change.
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
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
|
|
|
|
.fi
|
|
|
|
|
2006-12-20 22:25:06 +08:00
|
|
|
.SH INCLUDE STATEMENT
|
|
|
|
The LDIF parser has been extended to support an
|
|
|
|
.B include
|
|
|
|
statement for referencing other LDIF files. The
|
|
|
|
.B include
|
|
|
|
statement must be separated from other records by a blank line.
|
|
|
|
The referenced file is specified using a file: URI and all of its
|
|
|
|
contents are incorporated as if they were part of the original
|
|
|
|
LDIF file. As above, other URI schemes may be supported. For example:
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
dn: dc=example,dc=com
|
|
|
|
objectclass: domain
|
|
|
|
dc: example
|
|
|
|
|
|
|
|
include: file:///tmp/example.com.ldif
|
|
|
|
|
|
|
|
dn: dc=example,dc=org
|
|
|
|
objectclass: domain
|
|
|
|
dc: example
|
|
|
|
.fi
|
|
|
|
This feature is not part of the LDIF specification in RFC 2849 but
|
2006-12-20 22:32:51 +08:00
|
|
|
is expected to appear in a future revision of this spec. It is supported
|
|
|
|
by the
|
|
|
|
.BR ldapadd (1),
|
|
|
|
.BR ldapmodify (1),
|
|
|
|
and
|
|
|
|
.BR slapadd (8)
|
|
|
|
commands.
|
2006-12-20 22:25:06 +08:00
|
|
|
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH SEE ALSO
|
|
|
|
.BR ldap (3),
|
1999-08-18 04:25:16 +08:00
|
|
|
.BR ldapsearch (1),
|
2005-11-25 03:26:44 +08:00
|
|
|
.BR ldapadd (1),
|
|
|
|
.BR ldapmodify (1),
|
2006-12-20 22:25:06 +08:00
|
|
|
.BR slapadd (8),
|
2007-05-17 07:27:41 +08:00
|
|
|
.BR slapcat (8),
|
|
|
|
.BR slapd-ldif (5),
|
2005-11-25 03:26:44 +08:00
|
|
|
.BR slapd.replog (5).
|
2001-09-28 03:56:29 +08:00
|
|
|
.LP
|
|
|
|
"LDAP Data Interchange Format," Good, G., RFC 2849.
|
1998-10-25 09:41:42 +08:00
|
|
|
.SH ACKNOWLEDGEMENTS
|
2007-01-03 04:25:16 +08:00
|
|
|
.so ../Project
|