]> git.sur5r.net Git - openldap/commitdiff
Add change record format description
authorKurt Zeilenga <kurt@openldap.org>
Thu, 24 Nov 2005 19:26:44 +0000 (19:26 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Thu, 24 Nov 2005 19:26:44 +0000 (19:26 +0000)
doc/man/man5/ldif.5

index 5d2e17376ac1fd25bdfa1da1c217ce8a01faef2f..fa9ad5654091bc61f3fbfe6a20664b62ec4c8df2 100644 (file)
@@ -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
+This manual page provides a basic description of LDIF.  A
+formal specification of LDIF is published in RFC 2849.
+.SH ENTRY RECORDS
 .LP
-The basic form of an LDIF entry is:
+LDIF entry records are used to represent directory entries.  The basic
+form of an entry record is:
 .LP
 .nf
 .ft tt
-    dn: <distinguished name>
-    <attrdesc>: <attrvalue>
-    <attrdesc>: <attrvalue>
-    <attrdesc>:: <base64-encoded-value>
-    <attrdesc>:< <URL>
-    ...
+       dn: <distinguished name>
+       <attrdesc>: <attrvalue>
+       <attrdesc>: <attrvalue>
+       <attrdesc>:: <base64-encoded-value>
+       <attrdesc>:< <URL>
+       ...
 .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: <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
+
 .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.