mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
307 lines
7.6 KiB
Groff
307 lines
7.6 KiB
Groff
.TH LDAPMODIFY 1 "22 September 1998" "OpenLDAP LDVERSION"
|
|
.SH NAME
|
|
ldapmodify, ldapadd \- ldap modify entry and ldap add entry tools
|
|
.SH SYNOPSIS
|
|
.B ldapmodify
|
|
.B [\-a]
|
|
.B [\-b]
|
|
.B [\-c]
|
|
.B [\-r]
|
|
.B [\-n]
|
|
.B [\-v]
|
|
.B [\-k]
|
|
.B [\-d debuglevel]
|
|
.B [\-D binddn]
|
|
.B [\-w passwd]
|
|
.B [\-h ldaphost]
|
|
.B [\-p ldapport]
|
|
.B [\-f file]
|
|
.LP
|
|
.B ldapadd
|
|
.B [\-b]
|
|
.B [\-c]
|
|
.B [\-r]
|
|
.B [\-n]
|
|
.B [\-v]
|
|
.B [\-k]
|
|
.B [\-K]
|
|
.B [\-d debuglevel]
|
|
.B [\-D binddn]
|
|
.B [\-w passwd]
|
|
.B [\-h ldaphost]
|
|
.B [\-p ldapport]
|
|
.B [\-f file]
|
|
.SH DESCRIPTION
|
|
.B ldapmodify
|
|
is a shell-accessible interface to the
|
|
.BR ldap_modify (3)
|
|
and
|
|
.BR ldap_add (3)
|
|
library calls.
|
|
.B ldapadd
|
|
is implemented as a hard link to the ldapmodify tool. When invoked as
|
|
.B ldapadd
|
|
the -a (add new entry) flag is turned on automatically.
|
|
.LP
|
|
.B ldapmodify
|
|
opens a connection to an LDAP server, binds, and modifies or adds entries.
|
|
The entry information is read from standard input or from \fIfile\fP through
|
|
the use of the -f option.
|
|
.SH OPTIONS
|
|
.TP
|
|
.B \-a
|
|
Add new entries. The default for
|
|
.B ldapmodify
|
|
is to modify existing entries. If invoked as
|
|
.BR ldapadd ,
|
|
this flag is always set.
|
|
.TP
|
|
.B \-b
|
|
Assume that any values that start with a `/' are binary values and that
|
|
the actual value is in a file whose path is specified in the place where
|
|
values normally appear.
|
|
.TP
|
|
.B \-c
|
|
Continuous operation mode. Errors are reported, but
|
|
.B ldapmodify
|
|
will continue with modifications. The default is to exit after
|
|
reporting an error.
|
|
.TP
|
|
.B \-r
|
|
Replace existing values by default.
|
|
.TP
|
|
.B \-n
|
|
Show what would be done, but don't actually modify entries. Useful for
|
|
debugging in conjunction with -v.
|
|
.TP
|
|
.B \-v
|
|
Use verbose mode, with many diagnostics written to standard output.
|
|
.TP
|
|
.B \-k
|
|
Use Kerberos authentication instead of simple authentication. It is
|
|
assumed that you already have a valid ticket granting ticket. You must
|
|
compile with KERBEROS defined for this option to have any effect.
|
|
.TP
|
|
.B \-K
|
|
Same as \-k, but only does step 1 of the kerberos bind. This is useful
|
|
when connecting to a slapd and there is no x500dsa.hostname principal
|
|
registered with your kerberos servers.
|
|
.TP
|
|
.B \-F
|
|
Force application of all changes regardless of the contents of input
|
|
lines that begin with
|
|
.I replica:
|
|
(by default, replica: lines are compared against the LDAP server host
|
|
and port in use to decide if a replog record should actually be applied).
|
|
.TP
|
|
.B \-d debuglevel
|
|
Set the LDAP debugging level to \fIdebuglevel\fP.
|
|
.B ldapmodify
|
|
must be compiled with LDAP_DEBUG defined for this option to have any effect.
|
|
.TP
|
|
.B \-f file
|
|
Read the entry modification information from \fIfile\fP instead of from
|
|
standard input.
|
|
.TP
|
|
.B \-D binddn
|
|
Use \fIbinddn\fP to bind to the X.500 directory. \fIbinddn\fP should be
|
|
a string-represented DN as defined in RFC 1779.
|
|
.TP
|
|
.B \-w passwd
|
|
Use \fIpasswd\fP as the password for simple authentication.
|
|
.TP
|
|
.B \-h ldaphost
|
|
Specify an alternate host on which the ldap server is running.
|
|
.TP
|
|
.B \-p ldapport
|
|
Specify an alternate TCP port where the ldap server is listening.
|
|
.SH INPUT FORMAT
|
|
The contents of \fIfile\fP (or standard input if no \-f flag is given on
|
|
the command line) should conform to the format defined in
|
|
.BR slapd.replog (5),
|
|
with the exceptions noted below.
|
|
.LP
|
|
If the first line of a record consists of a decimal number (entry id),
|
|
it is ignored.
|
|
.LP
|
|
Lines that begin with "replica:" are matched against the LDAP server host
|
|
and port in use to decide if a particular replog record should be applied.
|
|
Any other lines that precede the "dn:" line are ignored.
|
|
The -F flag can be used to force
|
|
.I ldapmodify
|
|
to apply all of the replog changes, regardless of the presence or
|
|
absence of any "replica:" lines.
|
|
.LP
|
|
If no "changetype:" line is present, the default is "add" if the -a
|
|
flag is set (or if the program was invoked as
|
|
.I ldapmodify)
|
|
and "modify" otherwise.
|
|
.LP
|
|
If changetype is "modify" and no "add:", "replace:", or "delete:" lines
|
|
appear, the default is "replace" if the -r flag is set and "add"
|
|
otherwise.
|
|
.LP
|
|
Note that the above exceptions to the
|
|
.BR slapd.replog (5)
|
|
format allow
|
|
.BR ldif (5)
|
|
entries to be used as input to
|
|
.I ldapmodify
|
|
or
|
|
.I ldapadd.
|
|
.SH ALTERNATIVE INPUT FORMAT
|
|
An alternative input format is supported for compatibility with older
|
|
versions of
|
|
.I ldapmodify.
|
|
This format consists of one or more entries separated by blank lines,
|
|
where each entry looks like:
|
|
.LP
|
|
.nf
|
|
Distinguished Name (DN)
|
|
attr=value
|
|
[attr=value ...]
|
|
.fi
|
|
.LP
|
|
where \fIattr\fP is the name of the attribute and \fIvalue\fP is the
|
|
value.
|
|
.LP
|
|
By default, values are added. If the
|
|
.RI \- r
|
|
command line flag is
|
|
given, the default is to replace existing values with the new one.
|
|
Note that it is permissible for a given attribute to appear more than
|
|
once (for example, to add more than one value for an attribute). Also
|
|
note that you can use a trailing `\\' to continue values across lines and
|
|
preserve newlines in the value itself (this is useful for modifying
|
|
QUIPU iattr attributes among others).
|
|
.LP
|
|
.I attr
|
|
should be preceded by a \fB-\fP to remove a value. The `=' and
|
|
value should be omitted to remove an entire attribute.
|
|
.LP
|
|
.I attr
|
|
should be preceded by a \fB+\fP to add a value in the presence of the
|
|
\-r flag.
|
|
.LP
|
|
.SH EXAMPLES
|
|
Assuming that the file
|
|
.B /tmp/entrymods
|
|
exists and has the contents:
|
|
.LP
|
|
.nf
|
|
dn: cn=Modify Me, o=University of Michigan, c=US
|
|
changetype: modify
|
|
replace: mail
|
|
mail: modme@terminator.rs.itd.umich.edu
|
|
-
|
|
add: title
|
|
title: Grand Poobah
|
|
-
|
|
add: jpegPhoto
|
|
jpegPhoto: /tmp/modme.jpeg
|
|
-
|
|
delete: description
|
|
-
|
|
.fi
|
|
.LP
|
|
the command:
|
|
.LP
|
|
.nf
|
|
ldapmodify -b -r -f /tmp/entrymods
|
|
.fi
|
|
.LP
|
|
will replace the contents of the "Modify Me" entry's
|
|
.I mail
|
|
attribute with the value "modme@terminator.rs.itd.umich.edu", add a
|
|
.I title
|
|
of "Grand Poobah", and the contents of the file "/tmp/modme.jpeg"
|
|
as a
|
|
.IR jpegPhoto ,
|
|
and completely remove the
|
|
.I description
|
|
attribute.
|
|
The same modifications as above can be performed using the older
|
|
.I ldapmodify
|
|
inout format:
|
|
.LP
|
|
.nf
|
|
cn=Modify Me, o=University of Michigan, c=US
|
|
mail=modme@terminator.rs.itd.umich.edu
|
|
+title=Grand Poobah
|
|
+jpegPhoto=/tmp/modme.jpeg
|
|
-description
|
|
.fi
|
|
.LP
|
|
and the command:
|
|
.LP
|
|
.nf
|
|
ldapmodify -b -r -f /tmp/entrymods
|
|
.fi
|
|
.LP
|
|
Assuming that the file
|
|
.B /tmp/newentry
|
|
exists and has the contents:
|
|
.LP
|
|
.nf
|
|
dn: cn=Barbara Jensen, o=University of Michigan, c=US
|
|
objectClass: person
|
|
cn: Barbara Jensen
|
|
cn: Babs Jensen
|
|
sn: Jensen
|
|
title: the world's most famous mythical manager
|
|
mail: bjensen@terminator.rs.itd.umich.edu
|
|
uid: bjensen
|
|
.LP
|
|
the command:
|
|
.LP
|
|
.nf
|
|
ldapadd -f /tmp/entrymods
|
|
.fi
|
|
.LP
|
|
will add a new entry for Babs Jensen, using the values from the
|
|
file
|
|
.B /tmp/newentry.
|
|
.LP
|
|
Assuming that the file
|
|
.B /tmp/newentry
|
|
exists and has the contents:
|
|
.LP
|
|
.nf
|
|
dn: cn=Barbara Jensen, o=University of Michigan, c=US
|
|
changetype: delete
|
|
.LP
|
|
the command:
|
|
.LP
|
|
.nf
|
|
ldapmodify -f /tmp/entrymods
|
|
.fi
|
|
.LP
|
|
will remove Babs Jensen's entry.
|
|
.SH DIAGNOSTICS
|
|
Exit status is 0 if no errors occur. Errors result in a non-zero exit
|
|
status and a diagnostic message being written to standard error.
|
|
.SH "SEE ALSO"
|
|
.BR ldapadd (1),
|
|
.BR ldapdelete (1),
|
|
.BR ldapmodrdn (1),
|
|
.BR ldapsearch (1),
|
|
.BR ldap (3),
|
|
.BR ldap_add (3),
|
|
.BR ldap_delete (3),
|
|
.BR ldap_modify (3),
|
|
.BR ldap_modrdn (3),
|
|
.BR slapd.replog (5)
|
|
.LP
|
|
Kille, S.,
|
|
.IR "A String Representation of Distinguished Names",
|
|
.SM RFC
|
|
1779,
|
|
ISODE Consortium, March 1995.
|
|
.SH BUGS
|
|
There is no interactive mode, but there probably should be.
|
|
.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.
|