diff --git a/doc/man/man5/ldif.5 b/doc/man/man5/ldif.5 index 5d2e17376a..fa9ad56540 100644 --- a/doc/man/man5/ldif.5 +++ b/doc/man/man5/ldif.5 @@ -6,22 +6,25 @@ ldif \- LDAP Data Interchange Format .SH DESCRIPTION The LDAP Data Interchange Format (LDIF) is used to represent LDAP -entries in text form. LDAP tools, such as -.BR ldapadd (1) -and -.BR ldapsearch (1), -read and write LDIF. +entries and change records in text form. LDAP tools, such as +.BR ldapadd (1) and .BR ldapsearch (1), read and write LDIF entry +records. ldapmodify(1) reads LDIF change records. .LP -The basic form of an LDIF entry is: +This manual page provides a basic description of LDIF. A +formal specification of LDIF is published in RFC 2849. +.SH ENTRY RECORDS +.LP +LDIF entry records are used to represent directory entries. The basic +form of an entry record is: .LP .nf .ft tt - dn: - : - : - :: - :< - ... + dn: + : + : + :: + :< + ... .ft .fi .LP @@ -33,8 +36,8 @@ or tab, e.g., .LP .nf .ft tt - dn: cn=Barbara J Jensen,dc=exam - ple,dc=com + dn: cn=Barbara J Jensen,dc=exam + ple,dc=com .ft .fi .LP @@ -44,8 +47,8 @@ Multiple attribute values are specified on separate lines, e.g., .LP .nf .ft tt - cn: Barbara J Jensen - cn: Babs Jensen + cn: Barbara J Jensen + cn: Babs Jensen .ft .fi .LP @@ -56,7 +59,7 @@ the value " begins with a space" would be encoded like this: .LP .nf .ft tt - cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U= + cn:: IGJlZ2lucyB3aXRoIGEgc3BhY2U= .ft .fi .LP @@ -66,54 +69,175 @@ in the file /tmp/value would be listed like this: .LP .nf .ft tt - cn:< file:///tmp/value + cn:< file:///tmp/value .ft .fi Other URI schemes (ftp,http) may be supported as well. .LP Multiple entries within the same LDIF file are separated by blank lines. -.SH EXAMPLE +.SH ENTRY RECORD EXAMPLE Here is an example of an LDIF file containing three entries. .LP .nf .ft tt - 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=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=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 - ... + 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 + ... .ft .fi .LP -Notice that the description in Barbara Jensen's entry is +Note that the description in Barbara Jensen's entry is read from file:///tmp/babs and the jpegPhoto in Jennifer Jensen's entry is encoded using base 64. +.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: +.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: + : + : + ... + - +.fi +.LP +Or, for a replace modification: +.LP +.nf + replace: + : + : + ... + - +.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: + : + : + ... + - +.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 + : + : + ... + : + : +.fi +.LP +For a \fIchangetype\fP of \fImodrdn\fP or \fImoddn\fP, +the format is: +.LP +.nf + newrdn: + deleteoldrdn: 0 | 1 + newsuperior: +.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 + .SH SEE ALSO .BR ldap (3), .BR ldapsearch (1), -.BR ldapadd (1). +.BR ldapadd (1), +.BR ldapmodify (1), +.BR slapd.replog (5). .LP "LDAP Data Interchange Format," Good, G., RFC 2849. .SH ACKNOWLEDGEMENTS .B OpenLDAP is developed and maintained by The OpenLDAP Project (http://www.openldap.org/). .B OpenLDAP -is derived from University of Michigan LDAP 3.3 Release. +is derived from University of Michigan LDAP 3.3 Release.