X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=doc%2Fman%2Fman5%2Fslapd.conf.5;h=ff4242e19dac3b6b28021438a37d1fd968e0dfaf;hb=a7f9086ade0e1e4d8ae32d96b4b5c216d1a39902;hp=c0b0058dc6156216ce1c63d0d232fcc4d2614a07;hpb=85a1ff4eba94fb4a6a994703beb4d3cdb3355ac1;p=openldap diff --git a/doc/man/man5/slapd.conf.5 b/doc/man/man5/slapd.conf.5 index c0b0058dc6..ff4242e19d 100644 --- a/doc/man/man5/slapd.conf.5 +++ b/doc/man/man5/slapd.conf.5 @@ -1,5 +1,5 @@ .TH SLAPD.CONF 5 "RELEASEDATE" "OpenLDAP LDVERSION" -.\" Copyright 1998-2006 The OpenLDAP Foundation All Rights Reserved. +.\" Copyright 1998-2009 The OpenLDAP Foundation All Rights Reserved. .\" Copying restrictions apply. See COPYRIGHT/LICENSE. .\" $OpenLDAP$ .SH NAME @@ -11,9 +11,7 @@ The file .B ETCDIR/slapd.conf contains configuration information for the .BR slapd (8) -daemon. This configuration file is also used by the -.BR slurpd (8) -replication daemon and by the SLAPD tools +daemon. This configuration file is also used by the SLAPD tools .BR slapacl (8), .BR slapadd (8), .BR slapauth (8), @@ -54,7 +52,10 @@ than once, the last appearance in the file is used). .LP If a line begins with white space, it is considered a continuation -of the previous line. Blank lines and comment lines beginning with +of the previous line. No physical line should be over 2000 bytes +long. +.LP +Blank lines and comment lines beginning with a `#' character are ignored. Note: continuation lines are unwrapped before comment processing is applied. .LP @@ -67,7 +68,7 @@ backslash character. The specific configuration options available are discussed below in the Global Configuration Options, General Backend Options, and General Database Options. Backend-specific options are discussed in the -.B slapd-(5) +.B slapd\-(5) manual pages. Refer to the "OpenLDAP Administrator's Guide" for more details on the slapd configuration file. .SH GLOBAL CONFIGURATION OPTIONS @@ -107,34 +108,33 @@ allows unauthenticated (anonymous) proxy authorization control to be processed (subject to access controls, authorization and other administrative limits). .TP .B argsfile -The ( absolute ) name of a file that will hold the +The (absolute) name of a file that will hold the .B slapd -server's command line options -if started without the debugging command line option. +server's command line (program name and options). .TP .B attributeoptions [option-name]... Define tagging attribute options or option tag/range prefixes. -Options must not end with `-', prefixes must end with `-'. -The `lang-' prefix is predefined. +Options must not end with `\-', prefixes must end with `\-'. +The `lang\-' prefix is predefined. If you use the .B attributeoptions -directive, `lang-' will no longer be defined and you must specify it +directive, `lang\-' will no longer be defined and you must specify it explicitly if you want it defined. An attribute description with a tagging option is a subtype of that attribute description without the option. Except for that, options defined this way have no special semantics. -Prefixes defined this way work like the `lang-' options: +Prefixes defined this way work like the `lang\-' options: They define a prefix for tagging options starting with the prefix. -That is, if you define the prefix `x-foo-', you can use the option -`x-foo-bar'. +That is, if you define the prefix `x\-foo\-', you can use the option +`x\-foo\-bar'. Furthermore, in a search or compare, a prefix or range name (with -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'. +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'. -RFC 2251 reserves options beginning with `x-' for private experiments. -Other options should be registered with IANA, see RFC 3383 section 3.4. +RFC 4520 reserves options beginning with `x\-' for private experiments. +Other options should be registered with IANA, see RFC 4520 section 3.5. OpenLDAP also has the `binary' option built in, but this is a transfer option, not a tagging option. .HP @@ -153,8 +153,8 @@ option, not a tagging option. [NO\-USER\-MODIFICATION]\ [USAGE\ ]\ )" .RS -Specify an attribute type using the LDAPv3 syntax defined in RFC 2252. -The slapd parser extends the RFC 2252 definition by allowing string +Specify an attribute type using the LDAPv3 syntax defined in RFC 4512. +The slapd parser extends the RFC 4512 definition by allowing string forms as well as numeric OIDs to be used for the attribute OID and attribute syntax OID. (See the @@ -162,7 +162,7 @@ attribute syntax OID. description.) .RE .TP -.B authz-policy +.B authz\-policy Used to specify which rules to use for Proxy Authorization. Proxy authorization allows a client to authenticate to the server using one user's credentials, but specify a different identity to use for authorization @@ -216,7 +216,7 @@ and .I authzTo describes an .B identity -or a set of identities; it can take three forms: +or a set of identities; it can take five forms: .RS .TP .B ldap:///??[]? @@ -225,7 +225,7 @@ or a set of identities; it can take three forms: .B dn[.]: .RE .RS -.B u[[]]: +.B u[.[/]]: .RE .RS .B group[/objectClass[/attributeType]]: @@ -311,18 +311,21 @@ and can impact security, users are strongly encouraged to explicitly set the type of identity specification that is being used. A subset of these rules can be used as third arg in the -.B authz-regexp +.B authz\-regexp statement (see below); significantly, the -.I URI +.IR URI , +provided it results in exactly one entry, and the .I dn.exact: forms. .RE .TP -.B authz-regexp +.B authz\-regexp Used by the authentication framework to convert simple user names, -such as provided by SASL subsystem, to an LDAP DN used for -authorization purposes. Note that the resultant DN need not refer +such as provided by SASL subsystem, or extracted from certificates +in case of cert-based SASL EXTERNAL, or provided within the RFC 4370 +"proxied authorization" control, to an LDAP DN used for +authorization purposes. Note that the resulting DN need not refer to an existing entry to be considered valid. When an authorization request is received from the SASL subsystem, the SASL .BR USERNAME , @@ -374,9 +377,11 @@ e.g. .RE The protocol portion of the URI must be strictly .BR ldap . +Note that this search is subject to access controls. Specifically, +the authentication identity must have "auth" access in the subject. Multiple -.B authz-regexp +.B authz\-regexp options can be given in the configuration file to allow for multiple matching and replacement patterns. The matching patterns are checked in the order they appear in the file, stopping at the first successful match. @@ -421,6 +426,12 @@ upon StartTLS operation receipt. .B tls_authc disallows the StartTLS operation if authenticated (see also .BR tls_2_anon ). +.B proxy_authz_non_critical +disables acceptance of the proxied authorization control (RFC4370) +when criticality is FALSE. +.B dontusecopy_non_critical +disables acceptance of the dontUseCopy control (a work in progress) +when criticality is FALSE. .HP .hy 0 .B ditcontentrule "(\ \ @@ -432,8 +443,8 @@ disallows the StartTLS operation if authenticated (see also [MAY\ ]\ [NOT\ ]\ )" .RS -Specify an DIT Content Rule using the LDAPv3 syntax defined in RFC 2252. -The slapd parser extends the RFC 2252 definition by allowing string +Specify an DIT Content Rule using the LDAPv3 syntax defined in RFC 4512. +The slapd parser extends the RFC 4512 definition by allowing string forms as well as numeric OIDs to be used for the attribute OID and attribute syntax OID. (See the @@ -447,7 +458,7 @@ A SIGHUP signal will only cause a 'gentle' shutdown-attempt: will stop listening for new connections, but will not close the connections to the current clients. Future write operations return unwilling-to-perform, though. Slapd terminates when all clients -have closed their connections (if they ever do), or \- as before \- +have closed their connections (if they ever do), or - as before - if it receives a SIGTERM signal. This can be useful if you wish to terminate the server and start a new .B slapd @@ -461,12 +472,20 @@ along with this option. .B idletimeout Specify the number of seconds to wait before forcibly closing an idle client connection. A idletimeout of 0 disables this -feature. The default is 0. +feature. The default is 0. You may also want to set the +.B writetimeout +option. .TP .B include Read additional configuration information from the given file before continuing with the next line of the current file. .TP +.B index_intlen +Specify the key length for ordered integer indices. The most significant +bytes of the binary integer will be used for index keys. The default +value is 4, which provides exact indexing for 31 bit values. +A floating point representation is used to index too large values. +.TP .B index_substr_if_minlen Specify the minimum length for subinitial and subfinal indices. An attribute value must have at least this many characters in order to be @@ -493,12 +512,43 @@ lookup. The default is 2. For example, with the default values, a search using this filter "cn=*abcdefgh*" would generate index lookups for "abcd", "cdef", and "efgh". -.\"-- NEW_LOGGING option -- -.\".TP -.\".B logfile -.\"Specify a file for recording debug log messages. By default these messages -.\"only go to stderr and are not recorded anywhere else. Specifying a logfile -.\"copies messages to both stderr and the logfile. +.LP +Note: Indexing support depends on the particular backend in use. Also, +changing these settings will generally require deleting any indices that +depend on these parameters and recreating them with +.BR slapindex (8). + +.HP +.hy 0 +.B ldapsyntax "(\ \ + [DESC\ ]\ + [X\-SUBST ]\ )" +.RS +Specify an LDAP syntax using the LDAPv3 syntax defined in RFC 4512. +The slapd parser extends the RFC 4512 definition by allowing string +forms as well as numeric OIDs to be used for the syntax OID. +(See the +.B objectidentifier +description.) +The slapd parser also honors the +.B X\-SUBST +extension (an OpenLDAP-specific extension), which allows to use the +.B ldapsyntax +statement to define a non-implemented syntax along with another syntax, +the extension value +.IR substitute-syntax , +as its temporary replacement. +The +.I substitute-syntax +must be defined. +This allows to define attribute types that make use of non-implemented syntaxes +using the correct syntax OID. +Unless +.B X\-SUBST +is used, this configuration statement would result in an error, +since no handlers would be associated to the resulting syntax structure. +.RE + .TP .B localSSF Specifies the Security Strength Factor (SSF) to be given local LDAP sessions, @@ -508,6 +558,11 @@ see .B minssf option description. The default is 71. .TP +.B logfile +Specify a file for recording debug log messages. By default these messages +only go to stderr and are not recorded anywhere else. Specifying a logfile +copies messages to both stderr and the logfile. +.TP .B loglevel [...] Specify the level at which debugging statements and operation statistics should be syslogged (currently logged to the @@ -516,8 +571,7 @@ LOG_LOCAL4 facility). They must be considered subsystems rather than increasingly verbose log levels. Some messages with higher priority are logged regardless -of the configured loglevel as soon as some logging is configured, -otherwise anything is logged at all. +of the configured loglevel as soon as any logging is configured. Log levels are additive, and available levels are: .RS .RS @@ -557,7 +611,7 @@ access control list processing .TP .B 256 .B (0x100 stats) -stats log connections/operations/results +connections, LDAP operations, results (recommended) .TP .B 512 .B (0x200 stats2) @@ -604,15 +658,19 @@ or as a list of the names that are shown between brackets, such that are equivalent. The keyword .B any -can be used as a shortcut to enable logging at all levels (equivalent to -1). +can be used as a shortcut to enable logging at all levels (equivalent to \-1). The keyword .BR none , or the equivalent integer representation, causes those messages that are logged regardless of the configured loglevel to be logged. -In fact, if no loglevel (or a 0 level) is defined, no logging occurs, +In fact, if loglevel is set to 0, no logging occurs, so at least the .B none level is required to have high priority messages logged. + +The loglevel defaults to \fBstats\fP. +This level should usually also be included when using other loglevels, to +help analyze the logs. .RE .TP .B moduleload @@ -622,11 +680,13 @@ are searched for in the directories specified by the .B modulepath option. This option and the .B modulepath -option are only usable if slapd was compiled with --enable-modules. +option are only usable if slapd was compiled with \-\-enable\-modules. .TP .B modulepath Specify a list of directories to search for loadable modules. Typically the path is colon-separated but this depends on the operating system. +The default is MODULEDIR, which is where the standard OpenLDAP install +will place its modules. .HP .hy 0 .B objectclass "(\ \ @@ -637,8 +697,8 @@ the path is colon-separated but this depends on the operating system. [{ ABSTRACT | STRUCTURAL | AUXILIARY }]\ [MUST\ ] [MAY\ ] )" .RS -Specify an objectclass using the LDAPv3 syntax defined in RFC 2252. -The slapd parser extends the RFC 2252 definition by allowing string +Specify an objectclass using the LDAPv3 syntax defined in RFC 4512. +The slapd parser extends the RFC 4512 definition by allowing string forms as well as numeric OIDs to be used for the object class OID. (See the .B @@ -652,7 +712,7 @@ 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 [...] +.B password\-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). @@ -706,11 +766,10 @@ versions of crypt(3) to use an MD5 algorithm and provides provides 31 characters of salt. .TP .B pidfile -The ( absolute ) name of a file that will hold the +The (absolute) name of a file that will hold the .B slapd -server's process ID ( see -.BR getpid (2) -) if started without the debugging command line option. +server's process ID (see +.BR getpid (2)). .TP .B referral Specify the referral to pass back when @@ -718,43 +777,12 @@ Specify the referral to pass back when cannot find a local database to handle a request. If specified multiple times, each url is provided. .TP -.B replica-argsfile -The ( absolute ) name of a file that will hold the -.B slurpd -server's command line options -if started without the debugging command line option. -If it appears after a -.B replogfile -directive, the args file is specific to the -.BR slurpd (8) -instance that handles that replication log. -.TP -.B replica-pidfile -The ( absolute ) name of a file that will hold the -.B slurpd -server's process ID ( see -.BR getpid (2) -) if started without the debugging command line option. -If it appears after a -.B replogfile -directive, the pid file is specific to the -.BR slurpd (8) -instance that handles that replication log. -.TP -.B replicationinterval -The number of seconds -.B slurpd -waits before checking the replogfile for changes. -If it appears after a -.B replogfile -directive, the replication interval is specific to the -.BR slurpd (8) -instance that handles that replication log. -.TP .B require Specify a set of conditions (separated by white space) to require (default none). -The directive may be specified globally and/or per-database. +The directive may be specified globally and/or per-database; +databases inherit global conditions, so per-database specifications +are additive. .B bind requires bind operation prior to directory operations. .B LDAPv3 @@ -768,26 +796,40 @@ requires strong authentication prior to directory operations. The strong keyword allows protected "simple" authentication as well as SASL authentication. .B none -may be used to require no conditions (useful for clearly globally -set conditions within a particular database). +may be used to require no conditions (useful to clear out globally +set conditions within a particular database); it must occur first +in the list of conditions. .TP -.B reverse-lookup on | off +.B reverse\-lookup on | off Enable/disable client name unverified reverse lookup (default is .BR off -if compiled with --enable-rlookups). +if compiled with \-\-enable\-rlookups). .TP .B rootDSE Specify the name of an LDIF(5) file containing user defined attributes for the root DSE. These attributes are returned in addition to the attributes normally produced by slapd. -.TP -.B sasl-host + +The root DSE is an entry with information about the server and its +capabilities, in operational attributes. +It has the empty DN, and can be read with e.g.: +.ti +4 +ldapsearch \-x \-b "" \-s base "+" +.br +See RFC 4512 section 5.1 for details. +.TP +.B sasl\-auxprops [...] +Specify which auxprop plugins to use for authentication lookups. The +default is empty, which just uses slapd's internal support. Usually +no other auxprop plugins are needed. +.TP +.B sasl\-host Used to specify the fully qualified domain name used for SASL processing. .TP -.B sasl-realm +.B sasl\-realm Specify SASL realm. Default is empty. .TP -.B sasl-secprops +.B sasl\-secprops Used to specify Cyrus SASL security properties. The .B none @@ -838,7 +880,7 @@ controls the entries on this server. The default is "cn=Subschema". .B security Specify a set of security strength factors (separated by white space) to require (see -.BR sasl-secprops 's +.BR sasl\-secprops 's .B minssf option for a description of security strength factors). The directive may be specified globally and/or per-database. @@ -871,6 +913,25 @@ Note that the factor is measure of security provided by the underlying transport, e.g. ldapi:// (and eventually IPSEC). It is not normally used. .TP +.B serverID [] +Specify an integer ID from 0 to 4095 for this server (limited +to 3 hexadecimal digits). The ID may also be specified as a +hexadecimal ID by prefixing the value with "0x". +These IDs are +required when using multimaster replication and each master must have a +unique ID. Note that this requirement also applies to separate masters +contributing to a glued set of databases. +If the URL is provided, this directive may be specified +multiple times, providing a complete list of participating servers +and their IDs. The fully qualified hostname of each server should be +used in the supplied URLs. The IDs are used in the "replica id" field +of all CSNs generated by the specified server. The default value is zero. +Example: +.LP +.nf + serverID 1 +.fi +.TP .B sizelimit {|unlimited} .TP .B sizelimit size[.{soft|hard|unchecked}]= [...] @@ -893,6 +954,24 @@ The default is 262143. Specify the maximum incoming LDAP PDU size for authenticated sessions. The default is 4194303. .TP +.B sortvals [...] +Specify a list of multi-valued attributes whose values will always +be maintained in sorted order. Using this option will allow Modify, +Compare, and filter evaluations on these attributes to be performed +more efficiently. The resulting sort order depends on the +attributes' syntax and matching rules and may not correspond to +lexical order or any other recognizable order. +.TP +.B tcp-buffer [listener=] [{read|write}=] +Specify the size of the TCP buffer. +A global value for both read and write TCP buffers related to any listener +is defined, unless the listener is explicitly specified, +or either the read or write qualifiers are used. +See +.BR tcp (7) +for details. +Note that some OS-es implement automatic TCP buffer tuning. +.TP .B threads Specify the maximum size of the primary thread pool. The default is 16; the minimum value is 2. @@ -912,7 +991,7 @@ See .BR limits for an explanation of the different flags. .TP -.B tool-threads +.B tool\-threads Specify the maximum number of threads to use in tool mode. This should not be greater than the number of CPUs in the system. The default is 1. @@ -921,6 +1000,12 @@ The default is 1. .\".B ucdata-path .\"Specify the path to the directory containing the Unicode character .\"tables. The default path is DATADIR/ucdata. +.TP +.B writetimeout +Specify the number of seconds to wait before forcibly closing +a connection with an outstanding write. This allows recovery from +various network hang conditions. A writetimeout of 0 disables this +feature. The default is 0. .SH TLS OPTIONS If .B slapd @@ -935,7 +1020,16 @@ TLSCipherSuite HIGH:MEDIUM:+SSLv2 To check what ciphers a given spec selects, use: -openssl ciphers -v +.nf + openssl ciphers \-v +.fi + +To obtain the list of ciphers in GNUtls use: + +.nf + gnutls-cli \-l +.fi + .TP .B TLSCACertificateFile Specifies the file that contains certificates for all of the Certificate @@ -946,7 +1040,8 @@ will recognize. .B TLSCACertificatePath Specifies the path of a directory that contains Certificate Authority certificates in separate individual files. Usually only one of this -or the TLSCACertificateFile is used. +or the TLSCACertificateFile is used. This directive is not supported +when using GNUtls. .TP .B TLSCertificateFile Specifies the file that contains the @@ -969,12 +1064,14 @@ them will be processed. Note that setting this option may also enable Anonymous Diffie-Hellman key exchanges in certain non-default cipher suites. You should append "!ADH" to your cipher suites if you have changed them from the default, otherwise no certificate exchanges or verification will -be done. +be done. When using GNUtls these parameters are always generated randomly so +this directive is ignored. .TP .B TLSRandFile Specifies the file to obtain random bits from when /dev/[u]random is not available. Generally set to the name of the EGD/PRNGD socket. The environment variable RANDFILE can also be used to specify the filename. +This directive is ignored with GNUtls. .TP .B TLSVerifyClient Specifies what checks to perform on client certificates in an @@ -1016,7 +1113,7 @@ Specifies if the Certificate Revocation List (CRL) of the CA should be used to verify if the client certificates have not been revoked. This requires .B TLSCACertificatePath -parameter to be set. +parameter to be set. This directive is ignored with GNUtls. .B can be specified as one of the following keywords: .RS @@ -1030,6 +1127,11 @@ Check the CRL of the peer certificate .B all Check the CRL for a whole certificate chain .RE +.TP +.B TLSCRLFile +Specifies a file containing a Certificate Revocation List to be used +for verifying that certificates have not been revoked. This directive is +only valid when using GNUtls. .SH GENERAL BACKEND OPTIONS Options in this section only apply to the configuration file section for the specified backend. They are supported by every @@ -1043,7 +1145,6 @@ should be one of .BR dnssrv , .BR hdb , .BR ldap , -.BR ldbm , .BR ldif , .BR meta , .BR monitor , @@ -1073,7 +1174,6 @@ should be one of .BR dnssrv , .BR hdb , .BR ldap , -.BR ldbm , .BR ldif , .BR meta , .BR monitor , @@ -1085,31 +1185,65 @@ should be one of or .BR sql , depending on which backend will serve the database. + +LDAP operations, even subtree searches, normally access only one +database. +That can be changed by gluing databases together with the +.B subordinate +keyword. +Access controls and some overlays can also involve multiple databases. +.TP +.B add_content_acl on | off +Controls whether Add operations will perform ACL checks on +the content of the entry being added. This check is off +by default. See the +.BR slapd.access (5) +manual page for more details on ACL requirements for +Add operations. +.TP +.B hidden on | off +Controls whether the database will be used to answer +queries. A database that is hidden will never be +selected to answer any queries, and any suffix configured +on the database will be ignored in checks for conflicts +with other databases. By default, hidden is off. .TP .B lastmod on | off Controls whether .B slapd will automatically maintain the modifiersName, modifyTimestamp, creatorsName, and -createTimestamp attributes for entries. By default, lastmod is on. +createTimestamp attributes for entries. It also controls +the entryCSN and entryUUID attributes, which are needed +by the syncrepl provider. By default, lastmod is on. .TP -.B limits [ [...]] -Specify time and size limits based on who initiated an operation. +.B limits [ [...]] +Specify time and size limits based on the operation's initiator or +base DN. The argument -.B who +.B can be any of .RS .RS .TP -anonymous | users | [dn[.