]> git.sur5r.net Git - openldap/blobdiff - doc/man/man5/slapd.conf.5
fix braindead config option (mostly harmless)
[openldap] / doc / man / man5 / slapd.conf.5
index f59ac00bc35c78a3bd278c2f59efdf72752ce7fa..380bb9999fa25091186fed41bc7bcae262e592e4 100644 (file)
@@ -1,5 +1,5 @@
 .TH SLAPD.CONF 5 "RELEASEDATE" "OpenLDAP LDVERSION"
-.\" Copyright 1998-2003 The OpenLDAP Foundation All Rights Reserved.
+.\" Copyright 1998-2004 The OpenLDAP Foundation All Rights Reserved.
 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
 .\" $OpenLDAP$
 .SH NAME
@@ -83,7 +83,7 @@ allow (default none).
 .B bind_v2
 allows acceptance of LDAPv2 bind requests.  Note that
 .BR slapd (8)
-does not truely implement LDAPv2 (RFC 1777), now Historic (RFC 3494).
+does not truly implement LDAPv2 (RFC 1777), now Historic (RFC 3494).
 .B bind_anon_cred
 allows anonymous bind when credentials are not empty (e.g.
 when DN is empty).
@@ -120,8 +120,8 @@ a trailing `-') matches all options starting with that name, as well
 as the option with the range name sans the trailing `-'.
 That is, `x-foo-bar-' matches `x-foo-bar' and `x-foo-bar-baz'.
 
-RFC2251 reserves options beginning with `x-' for private experiments.
-Other options should be registered with IANA, see RFC3383 section 3.4.
+RFC 2251 reserves options beginning with `x-' for private experiments.
+Other options should be registered with IANA, see RFC 3383 section 3.4.
 OpenLDAP also has the `binary' option built in, but this is a transfer
 option, not a tagging option.
 .HP
@@ -162,6 +162,7 @@ is closed. The default is 100.
 .B conn_max_pending_auth <integer>
 Specify the maximum number of pending requests for an authenticated session.
 The default is 1000.
+.\"-- NEW_LOGGING option --
 .\".TP
 .\".B debug <subsys> <level>
 .\"Specify a logging level for a particular subsystem.  The subsystems include
@@ -283,142 +284,7 @@ feature.  The default is 0.
 .B include <filename>
 Read additional configuration information from the given file before
 continuing with the next line of the current file.
-.TP
-.B limits <who> <limit> [<limit> [...]]
-Specify time and size limits based on who initiated an operation.
-The argument
-.B who
-can be any of
-.RS
-.RS
-.TP
-anonymous | users | [dn[.<style>]=]<pattern>
-
-.RE
-with
-.RS
-.TP
-<style> ::= exact | base | one | subtree | children | regex | anonymous
-
-.RE
-The term
-.B anonymous
-matches all unauthenticated clients.
-the term
-.B users
-matches all authenticated clients;
-otherwise a
-.B regex
-dn pattern is assumed unless otherwise specified by qualifying 
-the (optional) key string
-.B dn
-with 
-.B exact
-or
-.B base
-(which are synonims), to require an exact match; with
-.BR one, 
-to require exactly one level of depth match; with
-.BR subtree,
-to allow any level of depth match, including the exact match; with
-.BR children,
-to allow any level of depth match, not including the exact match;
-.BR regex
-explicitly requires the (default) match based on regular expression
-pattern, as detailed in
-.BR regex (7).
-Finally,
-.B anonymous
-matches unbound operations; the 
-.B pattern
-field is ignored.
-The same behavior is obtained by using the 
-.B anonymous
-form of the
-.B who
-clause.
-
-The currently supported limits are 
-.B size
-and 
-.BR time.
-
-The syntax for time limits is 
-.BR time[.{soft|hard}]=<integer> ,
-where 
-.BR integer
-is the number of seconds slapd will spend answering a search request.
-If no time limit is explicitly requested by the client, the 
-.BR soft
-limit is used; if the requested time limit exceedes the
-.BR hard
-limit, an "Administrative limit exceeded" is returned.
-If the
-.BR hard
-limit is set to 0 or to the keyword "soft", the soft limit is used 
-in either case; if it is set to -1 or to the keyword "none", 
-no hard limit is enforced.
-Explicit requests for time limits smaller or equal to the
-.BR hard 
-limit are honored.
-If no flag is set, the value is assigned to the 
-.BR soft 
-limit, and the
-.BR hard
-limit is set to zero, to preserve the original behavior.
-
-The syntax for size limits is
-.BR size[.{soft|hard|unchecked}]=<integer> ,
-where
-.BR integer
-is the maximum number of entries slapd will return answering a search 
-request.
-If no size limit is explicitly requested by the client, the
-.BR soft
-limit is used; if the requested size limit exceedes the
-.BR hard
-limit, an "Administrative limit exceeded" is returned.
-If the 
-.BR hard
-limit is set to 0 or to the keyword "soft", the soft limit is used 
-in either case; if it is set to -1 or to the keyword "none", 
-no hard limit is enforced.
-Explicit requests for size limits smaller or equal to the
-.BR hard
-limit are honored.
-The
-.BR unchecked
-flag sets a limit on the number of candidates a search request is allowed
-to examine.
-If the selected candidates exceed the 
-.BR unchecked
-limit, the search will abort with "Unwilling to perform".
-If it is set to -1 or to the keyword "none", no limit is applied (the default).
-If no flag is set, the value is assigned to the
-.BR soft 
-limit, and the
-.BR hard
-limit is set to zero, to preserve the original behavior.
-
-In case of no match, the global limits are used.
-The default values are the same of
-.BR sizelimit
-and
-.BR timelimit ;
-no limit is set on 
-.BR unchecked .
-
-If 
-.B pagedResults
-control is defined, additional size limits may be enforced; the syntax is
-.BR size.pr={<integer>|noEstimate} ,
-where
-.BR integer
-is the max page size if no explicit limit is set; the keyword
-.BR noEstimate
-inhibits the server to return an estimate of the total number
-of entries that will be returned.
-.RE
+.\"-- NEW_LOGGING option --
 .\".TP
 .\".B logfile <filename>
 .\"Specify a file for recording debug log messages. By default these messages
@@ -511,10 +377,10 @@ in place of the numeric OID in objectclass and attribute definitions. The
 name can also be used with a suffix of the form ":xx" in which case the
 value "oid.xx" will be used.
 .TP
-.B password-hash <hash>
-This option sets the hash to be used in generation of user
-passwords, stored in userPassword, during processing of
-LDAP Password Modify Extended Operations (RFC 3052).
+.B password-hash <hash> [<hash>...]
+This option configures one or more hashes to be used in generation of user
+passwords stored in the userPassword attribute during processing of
+LDAP Password Modify Extended Operations (RFC 3062).
 The <hash> must be one of
 .BR {SSHA} ,
 .BR {SHA} ,
@@ -590,6 +456,11 @@ server's process ID ( see
 .BR getpid (2)
 ) if started without the debugging command line option.
 .TP
+.B replicationinterval
+The number of seconds 
+.B slurpd 
+waits before checking the replogfile for changes.
+.TP
 .B require <conditions>
 Specify a set of conditions (separated by white space) to
 require (default none).
@@ -640,9 +511,19 @@ flag will use rules in the
 .I saslAuthzTo
 attribute of the authentication DN.
 The
-.B both
-flag will allow both of the above. The rules are simply regular expressions
-specifying which DNs are allowed to perform proxy authorization. The
+.B any
+flag, an alias for the deprecated value of
+.BR both ,
+will allow any of the above, whatever succeeds first (checked in
+.BR to ,
+.B from
+sequence.
+The
+.B all
+flag requires both authorizations to succeed.
+The rules are simply regular expressions specifying which DNs are allowed 
+to perform proxy authorization.
+The
 .I saslAuthzFrom
 attribute in an entry specifies which other users
 are allowed to proxy login to this entry. The
@@ -656,6 +537,87 @@ In general the
 .I saslAuthzTo
 attribute must be protected with ACLs such that
 only privileged users can modify it.
+The value of
+.I saslAuthzFrom
+and
+.I saslAuthzTo
+describes an 
+.B identity 
+or a set of identities; it can take three forms:
+.RS
+.RS
+.TP
+.B ldap:///<base>??[<scope>]?<filter>
+.RE
+.RS
+.B dn[.<dnstyle>]:<pattern>
+.RE
+.RS
+.B u[<mech>[<realm>]]:<pattern>
+.RE
+.RS
+.B <pattern>
+.RE
+.RS
+
+.B <dnstyle>:={exact|onelevel|children|subtree|regex}
+
+.RE
+The first form is a valid LDAP
+.B uri
+where the 
+.IR <host>:<port> ,
+the
+.I <attrs>
+and the
+.I <extensions>
+portions must be absent, so that the search occurs locally on either
+.I saslAuthzFrom
+or 
+.IR saslAuthzTo .
+The second form is a 
+.BR DN ,
+with the optional style modifiers
+.IR exact ,
+.IR onelevel ,
+.IR children ,
+and
+.I subtree
+for exact, onelevel, children and subtree matches, which cause 
+.I <pattern>
+to be normalized according to the DN normalization rules, or the special
+.I regex
+style, which causes
+.I <pattern>
+to be compiled according to 
+.BR regex (7).
+The third form is a SASL
+.BR id ,
+with the optional fields
+.I <mech>
+and
+.I <realm>
+that allow to specify a SASL
+.BR mechanism ,
+and eventually a SASL
+.BR realm ,
+for those mechanisms that support one.
+The need to allow the specification of a mechanism is still debated, 
+and users are strongly discouraged to rely on this possibility.
+For backwards compatibility, if no identity type is provided, i.e. only
+.B <pattern>
+is present, an
+.I exact DN
+is assumed; as a consequence, 
+.B <pattern>
+is subjected to DN normalization.
+Since the interpretation of
+.I saslAuthzFrom
+and
+.I saslAuthzTo
+can impact security, users are strongly encouraged 
+to explicitly set the type of identity specification that is being used.
+.RE
 .TP
 .B sasl-host <fqdn>
 Used to specify the fully qualified domain name used for SASL processing.
@@ -729,7 +691,7 @@ appear in the file, stopping at the first successful match.
 Used to specify Cyrus SASL security properties.
 The
 .B none
-flag (without any other properities) causes the flag properites
+flag (without any other properties) causes the flag properties
 default, "noanonymous,noplain", to be cleared.
 The
 .B noplain
@@ -997,9 +959,225 @@ will automatically maintain the
 modifiersName, modifyTimestamp, creatorsName, and 
 createTimestamp attributes for entries.  By default, lastmod is on.
 .TP
+.B limits <who> <limit> [<limit> [...]]
+Specify time and size limits based on who initiated an operation.
+The argument
+.B who
+can be any of
+.RS
+.RS
+.TP
+anonymous | users | [dn[.<style>]=]<pattern> | group[/oc[/at]]=<pattern>
+
+.RE
+with
+.RS
+.TP
+<style> ::= exact | base | onelevel | subtree | children | regex | anonymous
+
+.RE
+The term
+.B anonymous
+matches all unauthenticated clients.
+The term
+.B users
+matches all authenticated clients;
+otherwise an
+.B exact
+dn pattern is assumed unless otherwise specified by qualifying 
+the (optional) key string
+.B dn
+with 
+.B exact
+or
+.B base
+(which are synonyms), to require an exact match; with
+.BR onelevel , 
+to require exactly one level of depth match; with
+.BR subtree ,
+to allow any level of depth match, including the exact match; with
+.BR children ,
+to allow any level of depth match, not including the exact match;
+.BR regex
+explicitly requires the (default) match based on regular expression
+pattern, as detailed in
+.BR regex (7).
+Finally,
+.B anonymous
+matches unbound operations; the 
+.B pattern
+field is ignored.
+The same behavior is obtained by using the 
+.B anonymous
+form of the
+.B who
+clause.
+The term
+.BR group ,
+with the optional objectClass
+.B oc
+and attributeType
+.B at
+fields, followed by
+.BR pattern ,
+sets the limits for any DN listed in the values of the
+.B at
+attribute (default
+.BR member )
+of the 
+.B oc
+group objectClass (default
+.BR groupOfNames )
+whose DN exactly matches
+.BR pattern .
+
+The currently supported limits are 
+.B size
+and 
+.BR time .
+
+The syntax for time limits is 
+.BR time[.{soft|hard}]=<integer> ,
+where 
+.BR integer
+is the number of seconds slapd will spend answering a search request.
+If no time limit is explicitly requested by the client, the 
+.BR soft
+limit is used; if the requested time limit exceeds the
+.BR hard
+limit, an
+.I \"Administrative limit exceeded\"
+error is returned.
+If the
+.BR hard
+limit is set to 0 or to the keyword 
+.IR soft ,
+the soft limit is used in either case; if it is set to 
+.I -1 
+or to the keyword 
+.IR none , 
+no hard limit is enforced.
+Explicit requests for time limits smaller or equal to the
+.BR hard 
+limit are honored.
+If no flag is set, the value is assigned to the 
+.BR soft 
+limit, and the
+.BR hard
+limit is set to zero, to preserve the original behavior.
+
+The syntax for size limits is
+.BR size[.{soft|hard|unchecked}]=<integer> ,
+where
+.BR integer
+is the maximum number of entries slapd will return answering a search 
+request.
+If no size limit is explicitly requested by the client, the
+.BR soft
+limit is used; if the requested size limit exceeds the
+.BR hard
+limit, an 
+.I \"Administrative limit exceeded\"
+error is returned.
+If the 
+.BR hard
+limit is set to 0 or to the keyword 
+.IR soft , 
+the soft limit is used in either case; if it is set to 
+.I -1 
+or to the keyword
+.IR none , 
+no hard limit is enforced.
+Explicit requests for size limits smaller or equal to the
+.BR hard
+limit are honored.
+The
+.BR unchecked
+flag sets a limit on the number of candidates a search request is allowed
+to examine.
+If the selected candidates exceed the 
+.BR unchecked
+limit, the search will abort with 
+.IR \"Unwilling to perform\" .
+If it is set to
+.I -1 
+or to the keyword 
+.IR none , 
+no limit is applied (the default).
+If it is set to
+.IR disable ,
+the search is not even performed; this can be used to disallow searches
+for a specific set of users.
+If no flag is set, the value is assigned to the
+.BR soft 
+limit, and the
+.BR hard
+limit is set to zero, to preserve the original behavior.
+
+In case of no match, the global limits are used.
+The default values are the same of
+.B sizelimit
+and
+.BR timelimit ;
+no limit is set on 
+.BR unchecked .
+
+If 
+.B pagedResults
+control is requested, the 
+.B hard
+size limit is used by default, because the request of a specific page size
+is considered as an explicit request for a limitation on the number
+of entries to be returned.
+However, the size limit applies to the total count of entries returned within
+the search, and not to a single page.
+Additional size limits may be enforced; the syntax is
+.BR size.pr={<integer>|noEstimate|none} ,
+where
+.B integer
+is the max page size if no explicit limit is set; the keyword
+.I noEstimate
+inhibits the server to return an estimate of the total number
+of entries that will be returned; the keyword
+.I none
+indicates that no limit is applied to the pagedResults control page size.
+The syntax
+.B size.prtotal={<integer>|none|disabled}
+allows to set a limit on the total number of entries that a pagedResults
+control allows to return.
+By default it is set to the 
+.B hard
+limit.
+When set, 
+.B integer
+is the max number of entries that the whole search with pagedResults control
+can return.
+Use 
+.B none
+to allow unlimited number of entries to be returned, i.e. to use 
+pagedResults as a means to allow clients to circumvent size limitations 
+on regular searches; the keyword
+.I disabled
+disables the control, i.e. no paged results can be returned.
+Note that the total number of entries returned when the pagedResults control 
+is requested cannot exceed the 
+.B hard 
+size limit of regular searches unless extended by the
+.B prtotal
+switch.
+.RE
+.TP
 .B maxderefdepth <depth>
 Specifies the maximum number of aliases to dereference when trying to
-resolve an entry, used to avoid inifinite alias loops. The default is 1.
+resolve an entry, used to avoid infinite alias loops. The default is 1.
+.TP
+.B overlay <overlay-name>
+Add the specified overlay to this database. An overlay is a piece of
+code that intercepts database operations in order to extend or change
+them. Overlays are pushed onto
+a stack over the database, and so they will execute in the reverse
+of the order in which they were configured and the database itself
+will receive control last of all.
 .TP
 .B readonly on | off
 This option puts the database into "read-only" mode.  Any attempts to 
@@ -1098,7 +1276,7 @@ password can only be set if the rootdn is within the namingContext
 This option accepts all RFC 2307 userPassword formats known to
 the server (see 
 .B password-hash
-desription) as well as cleartext.
+description) as well as cleartext.
 .BR slappasswd (8) 
 may be used to generate a hash of a password.  Cleartext
 and \fB{CRYPT}\fP passwords are not recommended.  If empty
@@ -1123,89 +1301,96 @@ associated with a single namingContext should have identical rootdns.
 Behavior of other LDAP operations is unaffected by this setting. In
 particular, it is not possible to use moddn to move an entry from
 one subordinate to another subordinate within the namingContext.
-.TP
-.B updatedn <dn>
-This option is only applicable in a slave
-.B slapd. 
-It specifies the DN permitted to update (subject to access controls)
-the replica (typically, this is the DN
-.BR slurpd (8)
-binds to update the replica).
-.TP
-.B updateref <url>
-Specify the referral to pass back when
-.BR slapd (8)
-is asked to modify a replicated local database.
-If specified multiple times, each url is provided.
 .HP
 .hy 0
-.B syncrepl id=<replica ID>
+.B syncrepl rid=<replica ID>
 .B provider=ldap[s]://<hostname>[:port]
-.B [updatedn=<dn>]
-.B [binddn=<dn>]
-.B [bindmethod=simple|sasl] [binddn=<simple DN>] [credentials=<simple passwd>]
-.B [saslmech=<SASL mech>] [secprops=<properties>] [realm=<realm>]
-.B [authcId=<authentication ID>] [authzId=<authorization ID>]
+.B [type=refreshOnly|refreshAndPersist]
+.B [interval=dd:hh:mm:ss]
 .B [searchbase=<base DN>]
 .B [filter=<filter str>]
+.B [scope=sub|one|base]
 .B [attrs=<attr list>]
+.B [attrsonly]
+.B [sizelimit=<limit>]
+.B [timelimit=<limit>]
 .B [schemachecking=on|off]
-.B [scope=sub|one|base]
-.B [type=refreshOnly|refreshAndPersist]
-.B [interval=dd:hh:mm]
+.B [updatedn=<dn>]
+.B [bindmethod=simple|sasl]
+.B [binddn=<dn>]
+.B [saslmech=<mech>]
+.B [authcid=<identity>]
+.B [authzid=<identity>]
+.B [credentials=<passwd>]
+.B [realm=<realm>]
+.B [secprops=<properties>]
 .RS
-Specify an LDAP Sync replication session between the specified replication provider
-site and this database (a replication consumer).
-The replication consumer communicates with the replication provider to perform
-an initial population and the following periodic or persistent synchronizations.
-The LDAP Sync replication engine is based on the LDAP Content Sync protocol :
-a stateful, pull, incremental, and partial synchronization protocol which
-supports both polling and listening modes of operations.
-It currently supports entry-level synchronization.
-A directory server wide
-.B id
-uniquely identifies this LDAP Sync replication specification
-in the directory server instance. The specification of an LDAP Sync replication
-session is based on the search specification which defines the replica content.
-The replicated entries are those directory entries of the subtree under the
-.B searchbase
-with the
-.B scope
-that match the
-.B filter.
-Only the attributes specified in the
-.B attrs 
-are included in the replica content.
-There are two synchronization modes depending on the incremental
-synchronization semantics after the intial content population.
-The incremental synchronization is performed periodically with
-the
-.B interval
-when the sync
-.B type
-is
-.B refreshOnly.
-Alternatively, the provider sends synchronization messages to the consumer
-upon updates to the replicated contents when the sync
-.B type
-is
-.B refreshAndPersist.
-The replication provider site is specified by
+Specify the current database as a replica which is kept up-to-date with the 
+master content by establishing the current
+.BR slapd (8)
+as a replication consumer site running a
+.B syncrepl
+replication engine.
+The replica content is kept synchronized to the master content using
+the LDAP Content Synchronization protocol. Refer to the
+"OpenLDAP Administrator's Guide" for detailed information on
+setting up a replicated
+.B slapd
+directory service using the 
+.B syncrepl
+replication engine.
+.B rid
+identifies the current
+.B syncrepl
+directive within the replication consumer site.
+It is a non-negative integer having no more than three digits.
 .B provider
-as an LDAP URI.
-If 
-.B schemachecking
-is
-.B on,
-every replicated entry will be checked for its schema
-when it is stored in the consumer replica.
-The consumer slapd should retrieve attributes of an entry
-that are required by the schema definition.
-If 
+specifies the replication provider site containing the master content
+as an LDAP URI. If <port> is not given, the standard LDAP port number
+(389 or 636) is used. The content of the
+.B syncrepl
+replica is defined using a search
+specification as its result set. The consumer
+.B slapd
+will send search requests to the provider
+.B slapd
+according to the search specification. The search specification includes
+.B searchbase, scope, filter, attrs, attrsonly, sizelimit,
+and
+.B timelimit
+parameters as in the normal search specification.
+The search specification for the LDAP Content Synchronization operation
+has the same value syntax and the same default values as in the
+.BR ldapsearch (1)
+client search tool.
+The LDAP Content Synchronization protocol has two operation types.
+In the
+.B refreshOnly
+operation, the next synchronization search operation
+is periodically rescheduled at an interval time (specified by 
+.B interval
+parameter; 1 day by default)
+after each synchronization operation finishes.
+In the
+.B refreshAndPersist
+operation, a synchronization search remains persistent in the provider slapd.
+Further updates to the master replica will generate
+.B searchResultEntry
+to the consumer slapd as the search responses to the persistent
+synchronization search. The schema checking can be enforced at the LDAP Sync
+consumer site by turning on the
 .B schemachecking
-is
-.B off,
-entries will be stored without checking the schema conformance.
+parameter. The default is off.
+The
+.B updatedn
+parameter specifies the DN in the consumer site
+which is allowed to make changes to the replica.
+The DN should have read/write access to the replica database.
+Generally, this DN
+.I should not
+be the same as the
+.B rootdn
+of the master database.
 A
 .B bindmethod
 of 
@@ -1214,27 +1399,50 @@ requires the options
 .B binddn
 and 
 .B credentials
-and should only be used when adequate security services (e.g. TLS or IPSEC) are in place.
+and should only be used when adequate security services
+(e.g. TLS or IPSEC) are in place.
 A
 .B bindmethod
 of
 .B sasl
 requires the option
 .B saslmech.
+Depending on the mechanism, an authentication identity and/or
+credentials can be specified using
+.B authcid
+and
+.B credentials.
+The
+.B authzid
+parameter may be used to specify an authorization identity.
 Specific security properties (as with the
-.B sasl secprops
+.B sasl-secprops
 keyword above) for a SASL bind can be set with the
 .B secprops
 option. A non default SASL realm can be set with the
 .B realm 
 option.
-If the 
-.B mechanism
-will use Kerberos, a kerberos instance should be given in
-.B authcId.
-.B updatedn
-specifies the DN used to update (subject to access controls) the
-replica at the consumer replica.
+.RE
+.TP
+.B updatedn <dn>
+This option is only applicable in a slave
+database updated using
+.BR slurpd(8). 
+It specifies the DN permitted to update (subject to access controls)
+the replica (typically, this is the DN
+.BR slurpd (8)
+binds to update the replica).  Generally, this DN
+.I should not
+be the same as the
+.B rootdn 
+used at the master.
+.TP
+.B updateref <url>
+Specify the referral to pass back when
+.BR slapd (8)
+is asked to modify a replicated local database.
+If specified multiple times, each url is provided.
+
 .SH DATABASE-SPECIFIC OPTIONS
 Each database may allow specific configuration options; they are
 documented separately in the backends' manual pages.