2000-08-20 09:00:12 +08:00
|
|
|
.TH LDAPMODIFY 1 "20 August 2000" "OpenLDAP LDVERSION"
|
1999-09-12 12:41:47 +08:00
|
|
|
.\" $OpenLDAP$
|
2000-05-13 10:47:56 +08:00
|
|
|
.\" Copyright 1998-2000 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
|
1999-08-20 01:02:36 +08:00
|
|
|
ldapmodify, ldapadd \- LDAP modify entry and LDAP add entry tools
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH SYNOPSIS
|
|
|
|
.B ldapmodify
|
1998-12-06 12:09:55 +08:00
|
|
|
[\c
|
|
|
|
.BR \-a ]
|
|
|
|
[\c
|
|
|
|
.BR \-b ]
|
|
|
|
[\c
|
|
|
|
.BR \-c ]
|
|
|
|
[\c
|
2000-06-26 04:29:20 +08:00
|
|
|
.BR \-C ]
|
|
|
|
[\c
|
1998-12-06 12:09:55 +08:00
|
|
|
.BR \-r ]
|
|
|
|
[\c
|
|
|
|
.BR \-n ]
|
|
|
|
[\c
|
|
|
|
.BR \-v ]
|
|
|
|
[\c
|
|
|
|
.BR \-k ]
|
|
|
|
[\c
|
2000-04-20 17:23:51 +08:00
|
|
|
.BR \-K ]
|
|
|
|
[\c
|
1999-07-16 10:45:46 +08:00
|
|
|
.BR \-M[M] ]
|
|
|
|
[\c
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-d \ debuglevel\fR]
|
|
|
|
[\c
|
|
|
|
.BI \-D \ binddn\fR]
|
|
|
|
[\c
|
1998-12-12 13:56:46 +08:00
|
|
|
.BR \-W ]
|
|
|
|
[\c
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-w \ passwd\fR]
|
|
|
|
[\c
|
2000-08-25 13:31:59 +08:00
|
|
|
.BI \-H \ ldapuri\fR]
|
|
|
|
[\c
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-h \ ldaphost\fR]
|
|
|
|
[\c
|
|
|
|
.BI \-p \ ldapport\fR]
|
|
|
|
[\c
|
1998-12-27 22:08:46 +08:00
|
|
|
.BI \-P \ 2\fR\||\|\fI3\fR]
|
|
|
|
[\c
|
2000-07-14 06:54:45 +08:00
|
|
|
.BR \-O \ security-properties ]
|
2000-04-20 17:23:51 +08:00
|
|
|
[\c
|
2000-07-17 10:43:41 +08:00
|
|
|
.BR \-I ]
|
|
|
|
[\c
|
|
|
|
.BR \-Q ]
|
|
|
|
[\c
|
2000-04-20 17:23:51 +08:00
|
|
|
.BI \-U \ username\fR]
|
|
|
|
[\c
|
2000-07-16 08:52:04 +08:00
|
|
|
.BR \-x ]
|
|
|
|
[\c
|
2000-04-20 17:23:51 +08:00
|
|
|
.BI \-X \ authzid\fR]
|
|
|
|
[\c
|
|
|
|
.BI \-Y \ mech\fR]
|
|
|
|
[\c
|
|
|
|
.BR \-Z[Z] ]
|
|
|
|
[\c
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-f \ file\fR]
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.B ldapadd
|
1998-12-06 12:09:55 +08:00
|
|
|
[\c
|
|
|
|
.BR \-b ]
|
|
|
|
[\c
|
|
|
|
.BR \-c ]
|
|
|
|
[\c
|
|
|
|
.BR \-r ]
|
|
|
|
[\c
|
|
|
|
.BR \-n ]
|
|
|
|
[\c
|
|
|
|
.BR \-v ]
|
|
|
|
[\c
|
|
|
|
.BR \-k ]
|
|
|
|
[\c
|
|
|
|
.BR \-K ]
|
|
|
|
[\c
|
2000-04-20 17:23:51 +08:00
|
|
|
.BR \-M[M] ]
|
|
|
|
[\c
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-d \ debuglevel\fR]
|
|
|
|
[\c
|
|
|
|
.BI \-D \ binddn\fR]
|
|
|
|
[\c
|
2000-04-20 17:23:51 +08:00
|
|
|
.BR \-W ]
|
|
|
|
[\c
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-w \ passwd\fR]
|
|
|
|
[\c
|
|
|
|
.BI \-h \ ldaphost\fR]
|
|
|
|
[\c
|
|
|
|
.BI \-p \ ldapport\fR]
|
|
|
|
[\c
|
2000-04-20 17:23:51 +08:00
|
|
|
.BI \-P \ 2\fR\||\|\fI3\fR]
|
|
|
|
[\c
|
|
|
|
.BR \-E[E] ]
|
|
|
|
[\c
|
|
|
|
.BR \-I[I] ]
|
|
|
|
[\c
|
|
|
|
.BI \-U \ username\fR]
|
|
|
|
[\c
|
|
|
|
.BI \-X \ authzid\fR]
|
|
|
|
[\c
|
|
|
|
.BI \-Y \ mech\fR]
|
|
|
|
[\c
|
|
|
|
.BR \-Z[Z] ]
|
|
|
|
[\c
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-f \ file\fR]
|
1998-08-09 08:43:13 +08:00
|
|
|
.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
|
2000-06-26 04:29:20 +08:00
|
|
|
.B \-C
|
|
|
|
Automatically chase referrals.
|
|
|
|
.TP
|
1998-08-09 08:43:13 +08:00
|
|
|
.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
|
1999-07-16 10:45:46 +08:00
|
|
|
.B \-M[M]
|
|
|
|
Enable manage DSA IT control.
|
|
|
|
.B \-MM
|
|
|
|
makes control critical.
|
|
|
|
.TP
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-d \ debuglevel
|
1998-08-09 08:43:13 +08:00
|
|
|
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
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-f \ file
|
1998-08-09 08:43:13 +08:00
|
|
|
Read the entry modification information from \fIfile\fP instead of from
|
|
|
|
standard input.
|
|
|
|
.TP
|
2000-07-16 08:52:04 +08:00
|
|
|
.B \-x
|
|
|
|
Use simple authentication instead of SASL.
|
|
|
|
.TP
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-D \ binddn
|
2000-08-20 14:21:38 +08:00
|
|
|
Use the Distinguished Name \fIbinddn\fP to bind to the LDAP directory.
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
1998-12-12 13:56:46 +08:00
|
|
|
.B \-W
|
|
|
|
Prompt for simple authentication.
|
|
|
|
This is used instead of specifying the password on the command line.
|
|
|
|
.TP
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-w \ passwd
|
1998-08-09 08:43:13 +08:00
|
|
|
Use \fIpasswd\fP as the password for simple authentication.
|
|
|
|
.TP
|
2000-08-25 13:31:59 +08:00
|
|
|
.BI \-H \ ldapuri
|
|
|
|
Specify URI(s) referring to the ldap server(s).
|
|
|
|
.TP
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-h \ ldaphost
|
1998-08-09 08:43:13 +08:00
|
|
|
Specify an alternate host on which the ldap server is running.
|
2000-08-25 13:31:59 +08:00
|
|
|
Deprecated in favor of -H.
|
1998-08-09 08:43:13 +08:00
|
|
|
.TP
|
1998-12-06 12:09:55 +08:00
|
|
|
.BI \-p \ ldapport
|
1998-08-09 08:43:13 +08:00
|
|
|
Specify an alternate TCP port where the ldap server is listening.
|
2000-08-25 13:31:59 +08:00
|
|
|
Deprecated in favor of -H.
|
1998-12-27 22:08:46 +08:00
|
|
|
.TP
|
|
|
|
.BI \-P \ 2\fR\||\|\fI3
|
|
|
|
Specify the LDAP protocol version to use.
|
2000-04-20 17:23:51 +08:00
|
|
|
.TP
|
2000-07-14 06:54:45 +08:00
|
|
|
.BI \-O \ security-properties
|
|
|
|
Specify SASL security properties.
|
2000-04-20 17:23:51 +08:00
|
|
|
.TP
|
2000-07-17 10:43:41 +08:00
|
|
|
.B \-I
|
|
|
|
Enable SASL Interactive mode. Always prompt. Default is to prompt
|
|
|
|
only as needed.
|
|
|
|
.TP
|
|
|
|
.B \-Q
|
|
|
|
Enable SASL Quiet mode. Never prompt.
|
|
|
|
.TP
|
2000-04-20 17:23:51 +08:00
|
|
|
.BI \-U \ username
|
|
|
|
Specify the username for SASL bind. The syntax of the username depends on the
|
|
|
|
actual SASL mechanism used.
|
|
|
|
.TP
|
|
|
|
.BI \-X \ authzid
|
|
|
|
Specify the requested authorization ID for SASL bind.
|
|
|
|
.I authzid
|
|
|
|
must be one of the following formats:
|
|
|
|
.B dn:\c
|
|
|
|
.I <distinguished name>
|
|
|
|
or
|
|
|
|
.B u:\c
|
|
|
|
.I <username>
|
|
|
|
.TP
|
|
|
|
.BI \-Y \ mech
|
|
|
|
Specify the SASL mechanism to be used for authentication. If it's not
|
|
|
|
specified, the program will choose the best mechanism the server knows.
|
|
|
|
.TP
|
|
|
|
.B \-Z[Z]
|
2000-06-14 10:35:42 +08:00
|
|
|
Issue StartTLS (Transport Layer Security) extended operation. If you use
|
2000-04-20 17:23:51 +08:00
|
|
|
.B \-ZZ\c
|
2000-06-14 10:35:42 +08:00
|
|
|
, the command will require the operation to be successful.
|
1998-08-09 08:43:13 +08:00
|
|
|
.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
|
2000-08-21 11:09:53 +08:00
|
|
|
dn: cn=Modify Me, dc=example, dc=com
|
1998-08-09 08:43:13 +08:00
|
|
|
changetype: modify
|
|
|
|
replace: mail
|
1999-08-20 01:02:36 +08:00
|
|
|
mail: modme@OpenLDAP.org
|
1998-08-09 08:43:13 +08:00
|
|
|
-
|
|
|
|
add: title
|
|
|
|
title: Grand Poobah
|
|
|
|
-
|
|
|
|
add: jpegPhoto
|
1999-08-20 01:02:36 +08:00
|
|
|
jpegPhoto:< file://tmp/modme.jpeg
|
1998-08-09 08:43:13 +08:00
|
|
|
-
|
|
|
|
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
|
2000-08-21 11:09:53 +08:00
|
|
|
attribute with the value "modme@example.com", add a
|
1998-08-09 08:43:13 +08:00
|
|
|
.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
|
2000-08-21 11:09:53 +08:00
|
|
|
input format:
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.nf
|
2000-08-21 11:09:53 +08:00
|
|
|
cn=Modify Me, dc=example, dc=com
|
|
|
|
mail=modme@example.com
|
1998-08-09 08:43:13 +08:00
|
|
|
+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
|
2000-08-21 11:09:53 +08:00
|
|
|
dn: cn=Barbara Jensen, dc=example, dc=com
|
1998-08-09 08:43:13 +08:00
|
|
|
objectClass: person
|
|
|
|
cn: Barbara Jensen
|
|
|
|
cn: Babs Jensen
|
|
|
|
sn: Jensen
|
|
|
|
title: the world's most famous mythical manager
|
2000-08-21 11:09:53 +08:00
|
|
|
mail: bjensen@example.com
|
1998-08-09 08:43:13 +08:00
|
|
|
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
|
2000-08-21 11:09:53 +08:00
|
|
|
dn: cn=Barbara Jensen, dc=example, dc=com
|
1998-08-09 08:43:13 +08:00
|
|
|
changetype: delete
|
|
|
|
.LP
|
|
|
|
the command:
|
|
|
|
.LP
|
|
|
|
.nf
|
|
|
|
ldapmodify -f /tmp/entrymods
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
will remove Babs Jensen's entry.
|
|
|
|
.SH DIAGNOSTICS
|
2000-08-21 11:09:53 +08:00
|
|
|
Exit status is zero if no errors occur. Errors result in a non-zero
|
|
|
|
exit status and a diagnostic message being written to standard error.
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR ldapadd (1),
|
|
|
|
.BR ldapdelete (1),
|
|
|
|
.BR ldapmodrdn (1),
|
|
|
|
.BR ldapsearch (1),
|
1998-11-11 07:37:30 +08:00
|
|
|
.BR ldap.conf (5),
|
1998-08-09 08:43:13 +08:00
|
|
|
.BR ldap (3),
|
|
|
|
.BR ldap_add (3),
|
|
|
|
.BR ldap_delete (3),
|
|
|
|
.BR ldap_modify (3),
|
|
|
|
.BR ldap_modrdn (3),
|
|
|
|
.BR slapd.replog (5)
|
|
|
|
.SH BUGS
|
|
|
|
There is no interactive mode, but there probably should be.
|
2000-07-14 06:54:45 +08:00
|
|
|
.SH AUTHOR
|
|
|
|
The OpenLDAP Project <http://www.openldap.org/>
|
1998-10-25 09:41:42 +08:00
|
|
|
.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.
|