]> git.sur5r.net Git - openldap/blob - doc/man/man5/slapd-config.5
Expand examples, mention converting old conf file with slaptest.
[openldap] / doc / man / man5 / slapd-config.5
1 .TH SLAPD-CONFIG 5 "RELEASEDATE" "OpenLDAP LDVERSION"
2 .\" Copyright 1998-2006 The OpenLDAP Foundation All Rights Reserved.
3 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
4 .\" $OpenLDAP$
5 .SH NAME
6 slapd-config \- configuration backend
7 .SH SYNOPSIS
8 ETCDIR/slapd.d
9 .SH DESCRIPTION
10 The
11 .B config
12 backend manages all of the configuration information for the
13 .BR slapd (8)
14 daemon.  This configuration information is also used by the SLAPD tools
15 .BR slapacl (8),
16 .BR slapadd (8),
17 .BR slapauth (8),
18 .BR slapcat (8),
19 .BR slapdn (8),
20 .BR slapindex (8),
21 and
22 .BR slaptest (8).
23 .LP
24 The
25 .B config
26 backend is backward compatible with the older
27 .BR slapd.conf (5)
28 file but provides the ability to change the configuration dynamically
29 at runtime. If slapd is run with only a
30 .B slapd.conf
31 file dynamic changes will be allowed but they will not persist across
32 a server restart. Dynamic changes are only saved when slapd is running
33 from a
34 .B slapd.d
35 configuration directory.
36 .LP
37
38 Unlike other backends, there can only be one instance of the
39 .B config
40 backend, and most of its structure is predefined. The root of the
41 database is hardcoded to
42 .B "cn=config"
43 and this root entry contains
44 global settings for slapd. Multiple child entries underneath the
45 root entry are used to carry various other settings:
46 .RS
47 .TP
48 .B cn=Include
49 old-style include files
50 .TP
51 .B cn=Module
52 dynamically loaded modules
53 .TP
54 .B cn=Schema
55 schema definitions
56 .TP
57 .B olcBackend=xxx
58 backend-specific settings
59 .TP
60 .B olcDatabase=xxx
61 database-specific settings
62 .RE
63
64 The
65 .B cn=Include
66 entries will only appear in configurations that were
67 converted from slapd.conf format. There can be multiple entries, one
68 for each included file. These entries only serve as placeholders to
69 document the fact that files were previously included. After those
70 files have been read and parsed, their content is merged into the
71 main configuration and then the include files are ignored thereafter.
72 These entries may form an arbitrarily deep subtree, reflecting any
73 nesting of the original include files.
74
75 The
76 .B cn=Module
77 entries will only appear in configurations where slapd
78 was built with support for dynamically loaded modules. There can be
79 multiple entries, one for each configured module path. Within each
80 entry there will be values recorded for each module loaded on a
81 given path. These entries have no children.
82
83 The
84 .B cn=Schema
85 entry contains all of the hardcoded schema elements.
86 The children of this entry contain all user-defined schema elements.
87 In schema that were loaded from include files, the child entry will
88 be named after the include file from which the schema was loaded.
89 Typically the first child in this subtree will be
90 .BR cn=core,cn=schema,cn=config .
91
92 .B olcBackend
93 entries are for storing settings specific to a single
94 backend type (and thus global to all database instances of that type).
95 At present there are no backends that implement settings of this
96 nature, so usually there will not be any olcBackend entries.
97
98 .B olcDatabase
99 entries store settings specific to a single database
100 instance. These entries may have
101 .B olcOverlay
102 child entries corresponding
103 to any overlays configured on the database. The olcDatabase and
104 olcOverlay entries may also have miscellaneous child entries for
105 other settings as needed. There are two special database entries
106 that are predefined - one is an entry for the config database itself,
107 and the other is for the "frontend" database. Settings in the
108 frontend database are inherited by the other databases, unless
109 they are explicitly overridden in a specific database.
110 .LP
111 The specific configuration options available are discussed below in the
112 Global Configuration Options, General Backend Options, and General Database
113 Options. Options are set by defining LDAP attributes with specific values.
114 In general the names of the LDAP attributes are the same as the corresponding
115 .B slapd.conf
116 keyword, with an "olc" prefix added on.
117
118 The parser for many of these attributes is the same as used for parsing
119 the slapd.conf keywords. As such, slapd.conf keywords that allow multiple
120 items to be specified on one line, separated by whitespace, will allow
121 multiple items to be specified in one attribute value. However, when
122 reading the attribute via LDAP, the items will be returned as individual
123 attribute values.
124
125 Backend-specific options are discussed in the
126 .B slapd-<backend>(5)
127 manual pages.  Refer to the "OpenLDAP Administrator's Guide" for more
128 details on configuring slapd.
129 .SH GLOBAL CONFIGURATION OPTIONS
130 Options described in this section apply to the server as a whole.
131 Arguments that should be replaced by 
132 actual text are shown in brackets <>.
133
134 These options may only be specified in the
135 .B cn=config
136 entry. This entry must have an objectClass of
137 .BR olcGlobal .
138
139 .TP
140 .B olcAllows: <features>
141 Specify a set of features to allow (default none).
142 .B bind_v2
143 allows acceptance of LDAPv2 bind requests.  Note that
144 .BR slapd (8)
145 does not truly implement LDAPv2 (RFC 1777), now Historic (RFC 3494).
146 .B bind_anon_cred
147 allows anonymous bind when credentials are not empty (e.g.
148 when DN is empty).
149 .B bind_anon_dn
150 allows unauthenticated (anonymous) bind when DN is not empty.
151 .B update_anon
152 allows unauthenticated (anonymous) update operations to be processed
153 (subject to access controls and other administrative limits).
154 .B proxy_authz_anon
155 allows unauthenticated (anonymous) proxy authorization control to be processed
156 (subject to access controls, authorization and other administrative limits).
157 .TP
158 .B olcArgsFile: <filename>
159 The ( absolute ) name of a file that will hold the 
160 .B slapd
161 server's command line options
162 if started without the debugging command line option.
163 .TP
164 .B olcAttributeOptions: <option-name>...
165 Define tagging attribute options or option tag/range prefixes.
166 Options must not end with `-', prefixes must end with `-'.
167 The `lang-' prefix is predefined.
168 If you use the
169 .B olcAttributeOptions
170 directive, `lang-' will no longer be defined and you must specify it
171 explicitly if you want it defined.
172
173 An attribute description with a tagging option is a subtype of that
174 attribute description without the option.
175 Except for that, options defined this way have no special semantics.
176 Prefixes defined this way work like the `lang-' options:
177 They define a prefix for tagging options starting with the prefix.
178 That is, if you define the prefix `x-foo-', you can use the option
179 `x-foo-bar'.
180 Furthermore, in a search or compare, a prefix or range name (with
181 a trailing `-') matches all options starting with that name, as well
182 as the option with the range name sans the trailing `-'.
183 That is, `x-foo-bar-' matches `x-foo-bar' and `x-foo-bar-baz'.
184
185 RFC 4520 reserves options beginning with `x-' for private experiments.
186 Other options should be registered with IANA, see RFC 4520 section 3.5.
187 OpenLDAP also has the `binary' option built in, but this is a transfer
188 option, not a tagging option.
189 .TP
190 .B olcAuthzPolicy: <policy>
191 Used to specify which rules to use for Proxy Authorization.  Proxy
192 authorization allows a client to authenticate to the server using one
193 user's credentials, but specify a different identity to use for authorization
194 and access control purposes. It essentially allows user A to login as user
195 B, using user A's password.
196 The
197 .B none
198 flag disables proxy authorization. This is the default setting.
199 The
200 .B from
201 flag will use rules in the
202 .I authzFrom
203 attribute of the authorization DN.
204 The
205 .B to
206 flag will use rules in the
207 .I authzTo
208 attribute of the authentication DN.
209 The
210 .B any
211 flag, an alias for the deprecated value of
212 .BR both ,
213 will allow any of the above, whatever succeeds first (checked in
214 .BR to ,
215 .B from
216 sequence.
217 The
218 .B all
219 flag requires both authorizations to succeed.
220 .LP
221 .RS
222 The rules are mechanisms to specify which identities are allowed 
223 to perform proxy authorization.
224 The
225 .I authzFrom
226 attribute in an entry specifies which other users
227 are allowed to proxy login to this entry. The
228 .I authzTo
229 attribute in
230 an entry specifies which other users this user can authorize as.  Use of
231 .I authzTo
232 rules can be easily
233 abused if users are allowed to write arbitrary values to this attribute.
234 In general the
235 .I authzTo
236 attribute must be protected with ACLs such that
237 only privileged users can modify it.
238 The value of
239 .I authzFrom
240 and
241 .I authzTo
242 describes an 
243 .B identity 
244 or a set of identities; it can take five forms:
245 .RS
246 .TP
247 .B ldap:///<base>??[<scope>]?<filter>
248 .RE
249 .RS
250 .B dn[.<dnstyle>]:<pattern>
251 .RE
252 .RS
253 .B u[<mech>[<realm>]]:<pattern>
254 .RE
255 .RS
256 .B group[/objectClass[/attributeType]]:<pattern>
257 .RE
258 .RS
259 .B <pattern>
260 .RE
261 .RS
262
263 .B <dnstyle>:={exact|onelevel|children|subtree|regex}
264
265 .RE
266 The first form is a valid LDAP
267 .B URI
268 where the 
269 .IR <host>:<port> ,
270 the
271 .I <attrs>
272 and the
273 .I <extensions>
274 portions must be absent, so that the search occurs locally on either
275 .I authzFrom
276 or 
277 .IR authzTo .
278 The second form is a 
279 .BR DN ,
280 with the optional style modifiers
281 .IR exact ,
282 .IR onelevel ,
283 .IR children ,
284 and
285 .I subtree
286 for exact, onelevel, children and subtree matches, which cause 
287 .I <pattern>
288 to be normalized according to the DN normalization rules, or the special
289 .I regex
290 style, which causes the
291 .I <pattern>
292 to be treated as a POSIX (''extended'') regular expression, as
293 discussed in
294 .BR regex (7)
295 and/or
296 .BR re_format (7).
297 A pattern of
298 .I *
299 means any non-anonymous DN.
300 The third form is a SASL
301 .BR id ,
302 with the optional fields
303 .I <mech>
304 and
305 .I <realm>
306 that allow to specify a SASL
307 .BR mechanism ,
308 and eventually a SASL
309 .BR realm ,
310 for those mechanisms that support one.
311 The need to allow the specification of a mechanism is still debated, 
312 and users are strongly discouraged to rely on this possibility.
313 The fourth form is a group specification, consisting of the keyword
314 .BR group ,
315 optionally followed by the specification of the group
316 .B objectClass
317 and member
318 .BR attributeType .
319 The group with DN
320 .B <pattern>
321 is searched with base scope, and in case of match, the values of the
322 member
323 .B attributeType
324 are searched for the asserted DN.
325 For backwards compatibility, if no identity type is provided, i.e. only
326 .B <pattern>
327 is present, an
328 .I exact DN
329 is assumed; as a consequence, 
330 .B <pattern>
331 is subjected to DN normalization.
332 Since the interpretation of
333 .I authzFrom
334 and
335 .I authzTo
336 can impact security, users are strongly encouraged 
337 to explicitly set the type of identity specification that is being used.
338 A subset of these rules can be used as third arg in the 
339 .B olcAuthzRegexp
340 statement (see below); significantly, the 
341 .I URI
342 and the
343 .I dn.exact:<dn> 
344 forms.
345 .RE
346 .TP
347 .B olcAuthzRegexp: <match> <replace>
348 Used by the authentication framework to convert simple user names,
349 such as provided by SASL subsystem, to an LDAP DN used for
350 authorization purposes.  Note that the resultant DN need not refer
351 to an existing entry to be considered valid.  When an authorization
352 request is received from the SASL subsystem, the SASL 
353 .BR USERNAME ,
354 .BR REALM , 
355 and
356 .B MECHANISM
357 are taken, when available, and combined into a name of the form
358 .RS
359 .RS
360 .TP
361 .B UID=<username>[[,CN=<realm>],CN=<mechanism>],CN=auth
362
363 .RE
364 This name is then compared against the
365 .B match
366 POSIX (''extended'') regular expression, and if the match is successful,
367 the name is replaced with the
368 .B replace
369 string.  If there are wildcard strings in the 
370 .B match
371 regular expression that are enclosed in parenthesis, e.g. 
372 .RS
373 .TP
374 .B UID=([^,]*),CN=.*
375
376 .RE
377 then the portion of the name that matched the wildcard will be stored
378 in the numbered placeholder variable $1. If there are other wildcard strings
379 in parenthesis, the matching strings will be in $2, $3, etc. up to $9. The 
380 placeholders can then be used in the 
381 .B replace
382 string, e.g. 
383 .RS
384 .TP
385 .B UID=$1,OU=Accounts,DC=example,DC=com 
386
387 .RE
388 The replaced name can be either a DN, i.e. a string prefixed by "dn:",
389 or an LDAP URI.
390 If the latter, the server will use the URI to search its own database(s)
391 and, if the search returns exactly one entry, the name is
392 replaced by the DN of that entry.   The LDAP URI must have no
393 hostport, attrs, or extensions components, but the filter is mandatory,
394 e.g.
395 .RS
396 .TP
397 .B ldap:///OU=Accounts,DC=example,DC=com??one?(UID=$1)
398
399 .RE
400 The protocol portion of the URI must be strictly
401 .BR ldap .
402 Note that this search is subject to access controls.  Specifically,
403 the authentication identity must have "auth" access in the subject.
404
405 Multiple 
406 .B olcAuthzRegexp 
407 values can be given in the configuration file to allow for multiple matching 
408 and replacement patterns. The matching patterns are checked in the order they 
409 appear in the file, stopping at the first successful match.
410
411 .\".B Caution:
412 .\"Because the plus sign + is a character recognized by the regular expression engine,
413 .\"and it will appear in names that include a REALM, be careful to escape the
414 .\"plus sign with a backslash \\+ to remove the character's special meaning.
415 .RE
416 .TP
417 .B olcConcurrency: <integer>
418 Specify a desired level of concurrency.  Provided to the underlying
419 thread system as a hint.  The default is not to provide any hint. This setting
420 is only meaningful on some platforms where there is not a one to one
421 correspondence between user threads and kernel threads.
422 .TP
423 .B olcConnMaxPending: <integer>
424 Specify the maximum number of pending requests for an anonymous session.
425 If requests are submitted faster than the server can process them, they
426 will be queued up to this limit. If the limit is exceeded, the session
427 is closed. The default is 100.
428 .TP
429 .B olcConnMaxPendingAuth: <integer>
430 Specify the maximum number of pending requests for an authenticated session.
431 The default is 1000.
432 .TP
433 .B olcDisallows: <features>
434 Specify a set of features to disallow (default none).
435 .B bind_anon
436 disables acceptance of anonymous bind requests.  Note that this setting
437 does not prohibit anonymous directory access (See "require authc").
438 .B bind_simple
439 disables simple (bind) authentication.
440 .B tls_2_anon
441 disables forcing session to anonymous status (see also
442 .BR tls_authc )
443 upon StartTLS operation receipt.
444 .B tls_authc
445 disallows the StartTLS operation if authenticated (see also
446 .BR tls_2_anon ).
447 .TP
448 .B olcGentleHUP: { TRUE | FALSE }
449 A SIGHUP signal will only cause a 'gentle' shutdown-attempt:
450 .B Slapd
451 will stop listening for new connections, but will not close the
452 connections to the current clients.  Future write operations return
453 unwilling-to-perform, though.  Slapd terminates when all clients
454 have closed their connections (if they ever do), or \- as before \-
455 if it receives a SIGTERM signal.  This can be useful if you wish to
456 terminate the server and start a new
457 .B slapd
458 server
459 .B with another database,
460 without disrupting the currently active clients.
461 The default is FALSE.  You may wish to use
462 .B olcIdletTmeout
463 along with this option.
464 .TP
465 .B olcIdleTimeout: <integer>
466 Specify the number of seconds to wait before forcibly closing
467 an idle client connection.  A setting of 0 disables this
468 feature.  The default is 0.
469 .TP
470 .B olcIndexSubstrIfMaxlen: <integer>
471 Specify the maximum length for subinitial and subfinal indices. Only
472 this many characters of an attribute value will be processed by the
473 indexing functions; any excess characters are ignored. The default is 4.
474 .TP
475 .B olcIndexSubstrIfMinlen: <integer>
476 Specify the minimum length for subinitial and subfinal indices. An
477 attribute value must have at least this many characters in order to be
478 processed by the indexing functions. The default is 2.
479 .TP
480 .B olcIndexSubstrAnyLen: <integer>
481 Specify the length used for subany indices. An attribute value must have
482 at least this many characters in order to be processed. Attribute values
483 longer than this length will be processed in segments of this length. The
484 default is 4. The subany index will also be used in subinitial and
485 subfinal index lookups when the filter string is longer than the
486 .I olcIndexSubstrIfMaxlen
487 value.
488 .TP
489 .B olcIndexSubstrAnyStep: <integer>
490 Specify the steps used in subany index lookups. This value sets the offset
491 for the segments of a filter string that are processed for a subany index
492 lookup. The default is 2. For example, with the default values, a search
493 using this filter "cn=*abcdefgh*" would generate index lookups for
494 "abcd", "cdef", and "efgh".
495
496 .TP
497 .B olcLocalSSF: <SSF>
498 Specifies the Security Strength Factor (SSF) to be given local LDAP sessions,
499 such as those to the ldapi:// listener.  For a description of SSF values,
500 see 
501 .BR olcSaslSecProps 's
502 .B minssf
503 option description.  The default is 71.
504 .TP
505 .B olcLogLevel: <integer> [...]
506 Specify the level at which debugging statements and operation 
507 statistics should be syslogged (currently logged to the
508 .BR syslogd (8) 
509 LOG_LOCAL4 facility).
510 They must be considered subsystems rather than increasingly verbose 
511 log levels.
512 Some messages with higher priority are logged regardless 
513 of the configured loglevel as soon as some logging is configured,
514 otherwise anything is logged at all.
515 Log levels are additive, and available levels are:
516 .RS
517 .RS
518 .PD 0
519 .TP
520 .B 1
521 .B (0x1 trace)
522 trace function calls
523 .TP
524 .B 2
525 .B (0x2 packets)
526 debug packet handling
527 .TP
528 .B 4
529 .B (0x4 args)
530 heavy trace debugging (function args)
531 .TP
532 .B 8
533 .B (0x8 conns)
534 connection management
535 .TP
536 .B 16
537 .B (0x10 BER)
538 print out packets sent and received
539 .TP
540 .B 32
541 .B (0x20 filter)
542 search filter processing
543 .TP
544 .B 64
545 .B (0x40 config)
546 configuration file processing
547 .TP
548 .B 128
549 .B (0x80 ACL)
550 access control list processing
551 .TP
552 .B 256
553 .B (0x100 stats)
554 stats log connections/operations/results
555 .TP
556 .B 512
557 .B (0x200 stats2)
558 stats log entries sent
559 .TP
560 .B 1024
561 .B (0x400 shell)
562 print communication with shell backends
563 .TP
564 .B 2048
565 .B (0x800 parse)
566 entry parsing
567 \".TP
568 \".B 4096
569 \".B (0x1000 cache)
570 \"caching (unused)
571 \".TP
572 \".B 8192
573 \".B (0x2000 index)
574 \"data indexing (unused)
575 .TP
576 .B 16384
577 .B (0x4000 sync)
578 LDAPSync replication
579 .TP
580 .B 32768
581 .B (0x8000 none)
582 only messages that get logged whatever log level is set
583 .PD
584 .RE
585 The desired log level can be input as a single integer that combines 
586 the (ORed) desired levels, both in decimal or in hexadecimal notation,
587 as a list of integers (that are ORed internally),
588 or as a list of the names that are shown between brackets, such that
589 .LP
590 .nf
591     olcLogLevel 129
592     olcLogLevel 0x81
593     olcLogLevel 128 1
594     olcLogLevel 0x80 0x1
595     olcLogLevel acl trace
596 .fi
597 .LP
598 are equivalent.
599 The keyword 
600 .B any
601 can be used as a shortcut to enable logging at all levels (equivalent to -1).
602 The keyword
603 .BR none ,
604 or the equivalent integer representation, causes those messages
605 that are logged regardless of the configured loglevel to be logged.
606 In fact, if no loglevel (or a 0 level) is defined, no logging occurs, 
607 so at least the 
608 .B none
609 level is required to have high priority messages logged.
610 .RE
611 .TP
612 .B olcPasswordCryptSaltFormat: <format>
613 Specify the format of the salt passed to
614 .BR crypt (3)
615 when generating {CRYPT} passwords (see
616 .BR olcPasswordHash )
617 during processing of LDAP Password Modify Extended Operations (RFC 3062).
618
619 This string needs to be in
620 .BR sprintf (3)
621 format and may include one (and only one) %s conversion.
622 This conversion will be substituted with a string of random
623 characters from [A\-Za\-z0\-9./].  For example, "%.2s"
624 provides a two character salt and "$1$%.8s" tells some
625 versions of crypt(3) to use an MD5 algorithm and provides
626 8 random characters of salt.  The default is "%s", which
627 provides 31 characters of salt.
628 .TP
629 .B olcPasswordHash: <hash> [<hash>...]
630 This option configures one or more hashes to be used in generation of user
631 passwords stored in the userPassword attribute during processing of
632 LDAP Password Modify Extended Operations (RFC 3062).
633 The <hash> must be one of
634 .BR {SSHA} ,
635 .BR {SHA} ,
636 .BR {SMD5} ,
637 .BR {MD5} ,
638 .BR {CRYPT} ,
639 and
640 .BR {CLEARTEXT} .
641 The default is
642 .BR {SSHA} .
643
644 .B {SHA}
645 and
646 .B {SSHA}
647 use the SHA-1 algorithm (FIPS 160-1), the latter with a seed.
648
649 .B {MD5}
650 and
651 .B {SMD5}
652 use the MD5 algorithm (RFC 1321), the latter with a seed.
653
654 .B {CRYPT}
655 uses the
656 .BR crypt (3).
657
658 .B {CLEARTEXT}
659 indicates that the new password should be
660 added to userPassword as clear text.
661
662 Note that this option does not alter the normal user applications
663 handling of userPassword during LDAP Add, Modify, or other LDAP operations.
664 .TP
665 .B olcPidFile: <filename>
666 The ( absolute ) name of a file that will hold the 
667 .B slapd
668 server's process ID ( see
669 .BR getpid (2)
670 ) if started without the debugging command line option.
671 .TP
672 .B olcPluginLogFile: <filename>
673 The ( absolute ) name of a file that will contain log
674 messages from
675 .B SLAPI
676 plugins. See
677 .BR slapd.plugin (5)
678 for details.
679 .TP
680 .B olcReferral: <url>
681 Specify the referral to pass back when
682 .BR slapd (8)
683 cannot find a local database to handle a request.
684 If multiple values are specified, each url is provided.
685 .\" slurpd-related keywords are all deprecated
686 .\".TP
687 .\".B replica-argsfile
688 .\"The ( absolute ) name of a file that will hold the 
689 .\".B slurpd
690 .\"server's command line options
691 .\"if started without the debugging command line option.
692 .\"If it appears after a
693 .\".B replogfile
694 .\"directive, the args file is specific to the 
695 .\".BR slurpd (8)
696 .\"instance that handles that replication log.
697 .\".TP
698 .\".B replica-pidfile
699 .\"The ( absolute ) name of a file that will hold the 
700 .\".B slurpd
701 .\"server's process ID ( see
702 .\".BR getpid (2)
703 .\") if started without the debugging command line option.
704 .\"If it appears after a
705 .\".B replogfile
706 .\"directive, the pid file is specific to the 
707 .\".BR slurpd (8)
708 .\"instance that handles that replication log.
709 .\".TP
710 .\".B replicationinterval
711 .\"The number of seconds 
712 .\".B slurpd 
713 .\"waits before checking the replogfile for changes.
714 .\"If it appears after a
715 .\".B replogfile
716 .\"directive, the replication interval is specific to the 
717 .\".BR slurpd (8)
718 .\"instance that handles that replication log.
719 .TP
720 .B olcReverseLookup: TRUE | FALSE
721 Enable/disable client name unverified reverse lookup (default is 
722 .BR FALSE 
723 if compiled with --enable-rlookups).
724 .TP
725 .B olcRootDSE: <file>
726 Specify the name of an LDIF(5) file containing user defined attributes
727 for the root DSE.  These attributes are returned in addition to the
728 attributes normally produced by slapd.
729 .TP
730 .B olcSaslHost: <fqdn>
731 Used to specify the fully qualified domain name used for SASL processing.
732 .TP
733 .B olcSaslRealm: <realm>
734 Specify SASL realm.  Default is empty.
735 .TP
736 .B olcSaslSecProps: <properties>
737 Used to specify Cyrus SASL security properties.
738 The
739 .B none
740 flag (without any other properties) causes the flag properties
741 default, "noanonymous,noplain", to be cleared.
742 The
743 .B noplain
744 flag disables mechanisms susceptible to simple passive attacks.
745 The
746 .B noactive
747 flag disables mechanisms susceptible to active attacks.
748 The
749 .B nodict
750 flag disables mechanisms susceptible to passive dictionary attacks.
751 The
752 .B noanonymous
753 flag disables mechanisms which support anonymous login.
754 The
755 .B forwardsec
756 flag require forward secrecy between sessions.
757 The
758 .B passcred
759 require mechanisms which pass client credentials (and allow
760 mechanisms which can pass credentials to do so).
761 The
762 .B minssf=<factor> 
763 property specifies the minimum acceptable
764 .I security strength factor
765 as an integer approximate to effective key length used for
766 encryption.  0 (zero) implies no protection, 1 implies integrity
767 protection only, 56 allows DES or other weak ciphers, 112
768 allows triple DES and other strong ciphers, 128 allows RC4,
769 Blowfish and other modern strong ciphers.  The default is 0.
770 The
771 .B maxssf=<factor> 
772 property specifies the maximum acceptable
773 .I security strength factor
774 as an integer (see minssf description).  The default is INT_MAX.
775 The
776 .B maxbufsize=<size> 
777 property specifies the maximum security layer receive buffer
778 size allowed.  0 disables security layers.  The default is 65536.
779 .TP
780 .B olcSockbufMaxIncoming: <integer>
781 Specify the maximum incoming LDAP PDU size for anonymous sessions.
782 The default is 262143.
783 .TP
784 .B olcSockbufMaxIncomingAuth: <integer>
785 Specify the maximum incoming LDAP PDU size for authenticated sessions.
786 The default is 4194303.
787 .TP
788 .B olcThreads: <integer>
789 Specify the maximum size of the primary thread pool.
790 The default is 16; the minimum value is 2.
791 .TP
792 .B olcToolThreads: <integer>
793 Specify the maximum number of threads to use in tool mode.
794 This should not be greater than the number of CPUs in the system.
795 The default is 1.
796 .\"ucdata-path is obsolete / ignored...
797 .\".TP
798 .\".B ucdata-path <path>
799 .\"Specify the path to the directory containing the Unicode character
800 .\"tables. The default path is DATADIR/ucdata.
801 .SH TLS OPTIONS
802 If
803 .B slapd
804 is built with support for Transport Layer Security, there are more options
805 you can specify.
806 .TP
807 .B olcTLSCipherSuite: <cipher-suite-spec>
808 Permits configuring what ciphers will be accepted and the preference order.
809 <cipher-suite-spec> should be a cipher specification for OpenSSL.  Example:
810
811 olcTLSCipherSuite: HIGH:MEDIUM:+SSLv2
812
813 To check what ciphers a given spec selects, use:
814
815 openssl ciphers -v <cipher-suite-spec>
816 .TP
817 .B olcTLSCACertificateFile: <filename>
818 Specifies the file that contains certificates for all of the Certificate
819 Authorities that
820 .B slapd
821 will recognize.
822 .TP
823 .B olcTLSCACertificatePath: <path>
824 Specifies the path of a directory that contains Certificate Authority
825 certificates in separate individual files. Usually only one of this
826 or the olcTLSCACertificateFile is defined. If both are specified, both
827 locations will be used.
828 .TP
829 .B olcTLSCertificateFile: <filename>
830 Specifies the file that contains the
831 .B slapd
832 server certificate.
833 .TP
834 .B olcTLSCertificateKeyFile: <filename>
835 Specifies the file that contains the
836 .B slapd
837 server private key that matches the certificate stored in the
838 .B olcTLSCertificateFile
839 file.  Currently, the private key must not be protected with a password, so
840 it is of critical importance that it is protected carefully. 
841 .TP
842 .B olcTLSDHParamFile: <filename>
843 This directive specifies the file that contains parameters for Diffie-Hellman
844 ephemeral key exchange.  This is required in order to use a DSA certificate on
845 the server. If multiple sets of parameters are present in the file, all of
846 them will be processed.  Note that setting this option may also enable
847 Anonymous Diffie-Hellman key exchanges in certain non-default cipher suites.
848 You should append "!ADH" to your cipher suites if you have changed them
849 from the default, otherwise no certificate exchanges or verification will
850 be done.
851 .TP
852 .B olcTLSRandFile: <filename>
853 Specifies the file to obtain random bits from when /dev/[u]random
854 is not available.  Generally set to the name of the EGD/PRNGD socket.
855 The environment variable RANDFILE can also be used to specify the filename.
856 .TP
857 .B olcTLSVerifyClient: <level>
858 Specifies what checks to perform on client certificates in an
859 incoming TLS session, if any.
860 The
861 .B <level>
862 can be specified as one of the following keywords:
863 .RS
864 .TP
865 .B never
866 This is the default.
867 .B slapd
868 will not ask the client for a certificate.
869 .TP
870 .B allow
871 The client certificate is requested.  If no certificate is provided,
872 the session proceeds normally.  If a bad certificate is provided,
873 it will be ignored and the session proceeds normally.
874 .TP
875 .B try
876 The client certificate is requested.  If no certificate is provided,
877 the session proceeds normally.  If a bad certificate is provided,
878 the session is immediately terminated.
879 .TP
880 .B demand | hard | true
881 These keywords are all equivalent, for compatibility reasons.
882 The client certificate is requested.  If no certificate is provided,
883 or a bad certificate is provided, the session is immediately terminated.
884
885 Note that a valid client certificate is required in order to use the
886 SASL EXTERNAL authentication mechanism with a TLS session.  As such,
887 a non-default
888 .B olcTLSVerifyClient
889 setting must be chosen to enable SASL EXTERNAL authentication.
890 .RE
891 .TP
892 .B olcTLSCRLCheck: <level>
893 Specifies if the Certificate Revocation List (CRL) of the CA should be 
894 used to verify if the client certificates have not been revoked. This
895 requires
896 .B olcTLSCACertificatePath
897 parameter to be set.
898 .B <level>
899 can be specified as one of the following keywords:
900 .RS
901 .TP
902 .B none
903 No CRL checks are performed
904 .TP
905 .B peer
906 Check the CRL of the peer certificate
907 .TP
908 .B all
909 Check the CRL for a whole certificate chain
910 .RE
911 .SH DYNAMIC MODULE OPTIONS
912 If
913 .B slapd
914 is compiled with --enable-modules then the module-related entries will
915 be available. These entries are named
916 .B cn=module{x},cn=config
917 and
918 must have the olcModuleList objectClass. One entry should be created
919 per
920 .B olcModulePath.
921 Normally the config engine generates the "{x}" index in the RDN
922 automatically, so it can be omitted when initially loading these entries.
923 .TP
924 .B olcModuleLoad: <filename>
925 Specify the name of a dynamically loadable module to load. The filename
926 may be an absolute path name or a simple filename. Non-absolute names
927 are searched for in the directories specified by the
928 .B olcModulePath
929 option.
930 .TP
931 .B olcModulePath: <pathspec>
932 Specify a list of directories to search for loadable modules. Typically
933 the path is colon-separated but this depends on the operating system.
934 .SH SCHEMA OPTIONS
935 Schema definitions are created as entries in the
936 .B cn=schema,cn=config
937 subtree. These entries must have the olcSchemaConfig objectClass.
938 As noted above, the actual
939 .B cn=schema,cn=config
940 entry is predefined and any values specified for it are ignored.
941
942 .HP
943 .hy 0
944 .B olcAttributetypes: "(\ <oid>\
945  [NAME\ <name>]\
946  [DESC\ <description>]\
947  [OBSOLETE]\
948  [SUP\ <oid>]\
949  [EQUALITY\ <oid>]\
950  [ORDERING\ <oid>]\
951  [SUBSTR\ <oid>]\
952  [SYNTAX\ <oidlen>]\
953  [SINGLE\-VALUE]\
954  [COLLECTIVE]\
955  [NO\-USER\-MODIFICATION]\
956  [USAGE\ <attributeUsage>]\ )"
957 .RS
958 Specify an attribute type using the LDAPv3 syntax defined in RFC 4512.
959 The slapd parser extends the RFC 4512 definition by allowing string
960 forms as well as numeric OIDs to be used for the attribute OID and
961 attribute syntax OID.
962 (See the
963 .B olcObjectIdentifier
964 description.) 
965 .RE
966
967 .HP
968 .hy 0
969 .B olcDitContentRules: "(\ <oid>\
970  [NAME\ <name>]\
971  [DESC\ <description>]\
972  [OBSOLETE]\
973  [AUX\ <oids>]\
974  [MUST\ <oids>]\
975  [MAY\ <oids>]\
976  [NOT\ <oids>]\ )"
977 .RS
978 Specify an DIT Content Rule using the LDAPv3 syntax defined in RFC 4512.
979 The slapd parser extends the RFC 4512 definition by allowing string
980 forms as well as numeric OIDs to be used for the attribute OID and
981 attribute syntax OID.
982 (See the
983 .B olcObjectIdentifier
984 description.) 
985 .RE
986
987 .HP
988 .hy 0
989 .B olcObjectClasses: "(\ <oid>\
990  [NAME\ <name>]\
991  [DESC\ <description>]\
992  [OBSOLETE]\
993  [SUP\ <oids>]\
994  [{ ABSTRACT | STRUCTURAL | AUXILIARY }]\
995  [MUST\ <oids>] [MAY\ <oids>] )"
996 .RS
997 Specify an objectclass using the LDAPv3 syntax defined in RFC 4512.
998 The slapd parser extends the RFC 4512 definition by allowing string
999 forms as well as numeric OIDs to be used for the object class OID.
1000 (See the
1001 .B
1002 olcObjectIdentifier
1003 description.)  Object classes are "STRUCTURAL" by default.
1004 .RE
1005 .TP
1006 .B olcObjectIdentifier: <name> "{ <oid> | <name>[:<suffix>] }"
1007 Define a string name that equates to the given OID. The string can be used
1008 in place of the numeric OID in objectclass and attribute definitions. The
1009 name can also be used with a suffix of the form ":xx" in which case the
1010 value "oid.xx" will be used.
1011
1012 .SH GENERAL BACKEND OPTIONS
1013 Options in these entries only apply to the configuration of a single
1014 type of backend. All backends may support this class of options.
1015 The entry must be named
1016 .B olcBackend=<databasetype>,cn=config
1017 and must have the olcBackendConfig objectClass.
1018 <databasetype>
1019 should be one of
1020 .BR bdb ,
1021 .BR config ,
1022 .BR dnssrv ,
1023 .BR hdb ,
1024 .BR ldap ,
1025 .BR ldif ,
1026 .BR meta ,
1027 .BR monitor ,
1028 .BR null ,
1029 .BR passwd ,
1030 .BR perl ,
1031 .BR relay ,
1032 .BR shell ,
1033 or
1034 .BR sql .
1035 At present, no backend implements any options of this type.
1036
1037 .SH DATABASE OPTIONS
1038 Database options are set in entries named
1039 .B olcDatabase={x}<databasetype>,cn=config
1040 and must have the olcDatabaseConfig objectClass. Normally the config
1041 engine generates the "{x}" index in the RDN automatically, so it
1042 can be omitted when initially loading these entries.
1043
1044 The special frontend database is always numbered "{-1}" and the config
1045 database is always numbered "{0}".
1046
1047 .SH GLOBAL DATABASE OPTIONS
1048 Options in this section may be set in the special "frontend" database
1049 and inherited in all the other databases. These options may be altered
1050 by further settings in each specific database. The frontend entry must
1051 be named
1052 .B olcDatabase=frontend,cn=config
1053 and must have the olcFrontendConfig objectClass.
1054 .TP
1055 .B olcAccess: to <what> "[ by <who> <access> <control> ]+"
1056 Grant access (specified by <access>) to a set of entries and/or
1057 attributes (specified by <what>) by one or more requestors (specified
1058 by <who>).
1059 If no access controls are present, the default policy
1060 allows anyone and everyone to read anything but restricts
1061 updates to rootdn.  (e.g., "olcAccess: to * by * read").
1062 See
1063 .BR slapd.access (5)
1064 and the "OpenLDAP Administrator's Guide" for details.
1065
1066 Access controls set in the frontend are appended to any access
1067 controls set on the specific databases.
1068 The rootdn of a database can always read and write EVERYTHING
1069 in that database.
1070
1071 Extra special care must be taken with the access controls on the
1072 config database. Unlike other databases, the default policy for the
1073 config database is to only allow access to the rootdn. Regular users
1074 should not have read access, and write access should be granted very
1075 carefully to privileged administrators.
1076
1077 .TP
1078 .B olcDefaultSearchBase: <dn>
1079 Specify a default search base to use when client submits a
1080 non-base search request with an empty base DN.
1081 Base scoped search requests with an empty base DN are not affected.
1082 This setting is only allowed in the frontend entry.
1083 .TP
1084 .B olcReadOnly: TRUE | FALSE
1085 This option puts the database into "read-only" mode.  Any attempts to 
1086 modify the database will return an "unwilling to perform" error.  By
1087 default, olcReadOnly is FALSE. Note that when this option is set
1088 TRUE on the frontend, it cannot be reset without restarting the
1089 server, since further writes to the config database will be rejected.
1090 .TP
1091 .B olcRequires: <conditions>
1092 Specify a set of conditions to require (default none).
1093 The directive may be specified globally and/or per-database;
1094 databases inherit global conditions, so per-database specifications
1095 are additive.
1096 .B bind
1097 requires bind operation prior to directory operations.
1098 .B LDAPv3
1099 requires session to be using LDAP version 3.
1100 .B authc
1101 requires authentication prior to directory operations.
1102 .B SASL
1103 requires SASL authentication prior to directory operations.
1104 .B strong
1105 requires strong authentication prior to directory operations.
1106 The strong keyword allows protected "simple" authentication
1107 as well as SASL authentication.
1108 .B none
1109 may be used to require no conditions (useful to clear out globally
1110 set conditions within a particular database); it must occur first
1111 in the list of conditions.
1112 .TP
1113 .B olcRestrict: <oplist>
1114 Specify a list of operations that are restricted.
1115 Restrictions on a specific database override any frontend setting.
1116 Operations can be any of 
1117 .BR add ,
1118 .BR bind ,
1119 .BR compare ,
1120 .BR delete ,
1121 .BR extended[=<OID>] ,
1122 .BR modify ,
1123 .BR rename ,
1124 .BR search ,
1125 or the special pseudo-operations
1126 .B read
1127 and
1128 .BR write ,
1129 which respectively summarize read and write operations.
1130 The use of 
1131 .I restrict write
1132 is equivalent to 
1133 .I olcReadOnly: TRUE
1134 (see above).
1135 The 
1136 .B extended
1137 keyword allows to indicate the OID of the specific operation
1138 to be restricted.
1139 .TP
1140 .B olcSchemaDN: <dn>
1141 Specify the distinguished name for the subschema subentry that
1142 controls the entries on this server.  The default is "cn=Subschema".
1143 .TP
1144 .B olcSecurity: <factors>
1145 Specify a set of security strength factors (separated by white space)
1146 to require (see
1147 .BR olcSaslSecprops 's
1148 .B minssf
1149 option for a description of security strength factors).
1150 The directive may be specified globally and/or per-database.
1151 .B ssf=<n>
1152 specifies the overall security strength factor.
1153 .B transport=<n>
1154 specifies the transport security strength factor.
1155 .B tls=<n>
1156 specifies the TLS security strength factor.
1157 .B sasl=<n>
1158 specifies the SASL security strength factor.
1159 .B update_ssf=<n>
1160 specifies the overall security strength factor to require for
1161 directory updates.
1162 .B update_transport=<n>
1163 specifies the transport security strength factor to require for
1164 directory updates.
1165 .B update_tls=<n>
1166 specifies the TLS security strength factor to require for
1167 directory updates.
1168 .B update_sasl=<n>
1169 specifies the SASL security strength factor to require for
1170 directory updates.
1171 .B simple_bind=<n>
1172 specifies the security strength factor required for
1173 .I simple
1174 username/password authentication.
1175 Note that the
1176 .B transport
1177 factor is measure of security provided by the underlying transport,
1178 e.g. ldapi:// (and eventually IPSEC).  It is not normally used.
1179 .TP
1180 .B olcSizeLimit: {<integer>|unlimited}
1181 .TP
1182 .B olcSizeLimit: size[.{soft|hard|unchecked}]=<integer> [...]
1183 Specify the maximum number of entries to return from a search operation.
1184 The default size limit is 500.
1185 Use
1186 .B unlimited
1187 to specify no limits.
1188 The second format allows a fine grain setting of the size limits.
1189 Extra args can be added in the same value or as additional values.
1190 See
1191 .BR olcLimits
1192 for an explanation of the different flags.
1193 .TP
1194 .B olcTimeLimit: {<integer>|unlimited}
1195 .TP
1196 .B olcTimeLimit: time[.{soft|hard}]=<integer> [...]
1197 Specify the maximum number of seconds (in real time)
1198 .B slapd
1199 will spend answering a search request.  The default time limit is 3600.
1200 Use
1201 .B unlimited
1202 to specify no limits.
1203 The second format allows a fine grain setting of the time limits.
1204 Extra args can be added in the same value or as additional values.
1205 See
1206 .BR olcLimits
1207 for an explanation of the different flags.
1208
1209 .SH GENERAL DATABASE OPTIONS
1210 Options in this section only apply to the specific database for
1211 which they are defined.  They are supported by every
1212 type of backend. All of the Global Database Options may also be
1213 used here.
1214 .TP
1215 .B olcLastMod: TRUE | FALSE
1216 Controls whether
1217 .B slapd
1218 will automatically maintain the 
1219 modifiersName, modifyTimestamp, creatorsName, and 
1220 createTimestamp attributes for entries. It also controls
1221 the entryCSN and entryUUID attributes, which are needed
1222 by the syncrepl provider. By default, olcLastMod is TRUE.
1223 .TP
1224 .B olcLimits: <who> <limit> [<limit> [...]]
1225 Specify time and size limits based on who initiated an operation.
1226 The argument
1227 .B who
1228 can be any of
1229 .RS
1230 .RS
1231 .TP
1232 anonymous | users | [dn[.<style>]=]<pattern> | group[/oc[/at]]=<pattern>
1233
1234 .RE
1235 with
1236 .RS
1237 .TP
1238 <style> ::= exact | base | onelevel | subtree | children | regex | anonymous
1239
1240 .RE
1241 The term
1242 .B anonymous
1243 matches all unauthenticated clients.
1244 The term
1245 .B users
1246 matches all authenticated clients;
1247 otherwise an
1248 .B exact
1249 dn pattern is assumed unless otherwise specified by qualifying 
1250 the (optional) key string
1251 .B dn
1252 with 
1253 .B exact
1254 or
1255 .B base
1256 (which are synonyms), to require an exact match; with
1257 .BR onelevel , 
1258 to require exactly one level of depth match; with
1259 .BR subtree ,
1260 to allow any level of depth match, including the exact match; with
1261 .BR children ,
1262 to allow any level of depth match, not including the exact match;
1263 .BR regex
1264 explicitly requires the (default) match based on POSIX (''extended'')
1265 regular expression pattern.
1266 Finally,
1267 .B anonymous
1268 matches unbound operations; the 
1269 .B pattern
1270 field is ignored.
1271 The same behavior is obtained by using the 
1272 .B anonymous
1273 form of the
1274 .B who
1275 clause.
1276 The term
1277 .BR group ,
1278 with the optional objectClass
1279 .B oc
1280 and attributeType
1281 .B at
1282 fields, followed by
1283 .BR pattern ,
1284 sets the limits for any DN listed in the values of the
1285 .B at
1286 attribute (default
1287 .BR member )
1288 of the 
1289 .B oc
1290 group objectClass (default
1291 .BR groupOfNames )
1292 whose DN exactly matches
1293 .BR pattern .
1294
1295 The currently supported limits are 
1296 .B size
1297 and 
1298 .BR time .
1299
1300 The syntax for time limits is 
1301 .BR time[.{soft|hard}]=<integer> ,
1302 where 
1303 .I integer
1304 is the number of seconds slapd will spend answering a search request.
1305 If no time limit is explicitly requested by the client, the 
1306 .BR soft
1307 limit is used; if the requested time limit exceeds the
1308 .BR hard
1309 .\"limit, an
1310 .\".I "Administrative limit exceeded"
1311 .\"error is returned.
1312 limit, the value of the limit is used instead.
1313 If the
1314 .BR hard
1315 limit is set to the keyword 
1316 .IR soft ,
1317 the soft limit is used in either case; if it is set to the keyword 
1318 .IR unlimited , 
1319 no hard limit is enforced.
1320 Explicit requests for time limits smaller or equal to the
1321 .BR hard 
1322 limit are honored.
1323 If no limit specifier is set, the value is assigned to the 
1324 .BR soft 
1325 limit, and the
1326 .BR hard
1327 limit is set to
1328 .IR soft ,
1329 to preserve the original behavior.
1330
1331 The syntax for size limits is
1332 .BR size[.{soft|hard|unchecked}]=<integer> ,
1333 where
1334 .I integer
1335 is the maximum number of entries slapd will return answering a search 
1336 request.
1337 If no size limit is explicitly requested by the client, the
1338 .BR soft
1339 limit is used; if the requested size limit exceeds the
1340 .BR hard
1341 .\"limit, an 
1342 .\".I "Administrative limit exceeded"
1343 .\"error is returned.
1344 limit, the value of the limit is used instead.
1345 If the 
1346 .BR hard
1347 limit is set to the keyword 
1348 .IR soft , 
1349 the soft limit is used in either case; if it is set to the keyword
1350 .IR unlimited , 
1351 no hard limit is enforced.
1352 Explicit requests for size limits smaller or equal to the
1353 .BR hard
1354 limit are honored.
1355 The
1356 .BR unchecked
1357 specifier sets a limit on the number of candidates a search request is allowed
1358 to examine.
1359 The rationale behind it is that searches for non-properly indexed
1360 attributes may result in large sets of candidates, which must be 
1361 examined by
1362 .BR slapd (8)
1363 to determine whether they match the search filter or not.
1364 The
1365 .B unchecked
1366 limit provides a means to drop such operations before they are even 
1367 started.
1368 If the selected candidates exceed the 
1369 .BR unchecked
1370 limit, the search will abort with 
1371 .IR "Unwilling to perform" .
1372 If it is set to the keyword 
1373 .IR unlimited , 
1374 no limit is applied (the default).
1375 If it is set to
1376 .IR disable ,
1377 the search is not even performed; this can be used to disallow searches
1378 for a specific set of users.
1379 If no limit specifier is set, the value is assigned to the
1380 .BR soft 
1381 limit, and the
1382 .BR hard
1383 limit is set to
1384 .IR soft ,
1385 to preserve the original behavior.
1386
1387 In case of no match, the global limits are used.
1388 The default values are the same as
1389 .B olcSizeLimit
1390 and
1391 .BR olcTimeLimit ;
1392 no limit is set on 
1393 .BR unchecked .
1394
1395 If 
1396 .B pagedResults
1397 control is requested, the 
1398 .B hard
1399 size limit is used by default, because the request of a specific page size
1400 is considered an explicit request for a limitation on the number
1401 of entries to be returned.
1402 However, the size limit applies to the total count of entries returned within
1403 the search, and not to a single page.
1404 Additional size limits may be enforced; the syntax is
1405 .BR size.pr={<integer>|noEstimate|unlimited} ,
1406 where
1407 .I integer
1408 is the max page size if no explicit limit is set; the keyword
1409 .I noEstimate
1410 inhibits the server from returning an estimate of the total number
1411 of entries that might be returned
1412 (note: the current implementation does not return any estimate).
1413 The keyword
1414 .I unlimited
1415 indicates that no limit is applied to the pagedResults control page size.
1416 The syntax
1417 .B size.prtotal={<integer>|unlimited|disabled}
1418 allows to set a limit on the total number of entries that a pagedResults
1419 control allows to return.
1420 By default it is set to the 
1421 .B hard
1422 limit.
1423 When set, 
1424 .I integer
1425 is the max number of entries that the whole search with pagedResults control
1426 can return.
1427 Use 
1428 .I unlimited
1429 to allow unlimited number of entries to be returned, e.g. to allow
1430 the use of the pagedResults control as a means to circumvent size 
1431 limitations on regular searches; the keyword
1432 .I disabled
1433 disables the control, i.e. no paged results can be returned.
1434 Note that the total number of entries returned when the pagedResults control 
1435 is requested cannot exceed the 
1436 .B hard 
1437 size limit of regular searches unless extended by the
1438 .B prtotal
1439 switch.
1440 .RE
1441 .TP
1442 .B olcMaxDerefDepth: <depth>
1443 Specifies the maximum number of aliases to dereference when trying to
1444 resolve an entry, used to avoid infinite alias loops. The default is 1.
1445 .TP
1446 .B olcMirrorMode: TRUE | FALSE
1447 This option puts a replica database into "mirror" mode.  Update
1448 operations will be accepted from any user, not just the updatedn.  The
1449 database must already be configured as syncrepl consumer
1450 before this keyword may be set.  This mode must be used with extreme
1451 care, as it does not offer any consistency guarantees.  This feature
1452 is intended to be used with an external frontend that guarantees that
1453 writes are only directed to a single master, switching to an alternate
1454 server only if the original master goes down.
1455 By default, this setting is FALSE.
1456 .TP
1457 .B olcPlugin: <plugin_type> <lib_path> <init_function> [<arguments>]
1458 Configure a SLAPI plugin. See the
1459 .BR slapd.plugin (5)
1460 manpage for more details.
1461 .\".HP
1462 .\".hy 0
1463 .\".B replica uri=ldap[s]://<hostname>[:port]|host=<hostname>[:port] 
1464 .\".B [starttls=yes|critical]
1465 .\".B [suffix=<suffix> [...]]
1466 .\".B bindmethod=simple|sasl [binddn=<simple DN>] [credentials=<simple password>]
1467 .\".B [saslmech=<SASL mech>] [secprops=<properties>] [realm=<realm>]
1468 .\".B [authcId=<authentication ID>] [authzId=<authorization ID>]
1469 .\".B [attrs[!]=<attr list>]
1470 .\".RS
1471 .\"Specify a replication site for this database.  Refer to the "OpenLDAP 
1472 .\"Administrator's Guide" for detailed information on setting up a replicated
1473 .\".B slapd
1474 .\"directory service. Zero or more
1475 .\".B suffix
1476 .\"instances can be used to select the subtrees that will be replicated
1477 .\"(defaults to all the database). 
1478 .\".B host
1479 .\"is deprecated in favor of the
1480 .\".B uri
1481 .\"option.
1482 .\".B uri
1483 .\"allows the replica LDAP server to be specified as an LDAP URI. 
1484 .\"A
1485 .\".B bindmethod
1486 .\"of
1487 .\".B simple
1488 .\"requires the options
1489 .\".B binddn 
1490 .\"and
1491 .\".B credentials  
1492 .\"and should only be used when adequate security services 
1493 .\"(e.g TLS or IPSEC) are in place. A
1494 .\".B bindmethod 
1495 .\"of
1496 .\".B sasl 
1497 .\"requires the option
1498 .\".B saslmech. 
1499 .\"Specific security properties (as with the
1500 .\".B sasl-secprops
1501 .\"keyword above) for a SASL bind can be set with the
1502 .\".B secprops
1503 .\"option. A non-default SASL realm can be set with the
1504 .\".B realm
1505 .\"option.
1506 .\"If the 
1507 .\".B mechanism
1508 .\"will use Kerberos, a kerberos instance should be given in 
1509 .\".B authcId.
1510 .\"An
1511 .\".B attr list
1512 .\"can be given after the 
1513 .\".B attrs
1514 .\"keyword to allow the selective replication of the listed attributes only;
1515 .\"if the optional 
1516 .\".B !
1517 .\"mark is used, the list is considered exclusive, i.e. the listed attributes
1518 .\"are not replicated.
1519 .\"If an objectClass is listed, all the related attributes
1520 .\"are (are not) replicated.
1521 .\".RE
1522 .\".TP
1523 .\".B replogfile <filename>
1524 .\"Specify the name of the replication log file to log changes to.  
1525 .\"The replication log is typically written by
1526 .\".BR slapd (8)
1527 .\"and read by
1528 .\".BR slurpd (8).
1529 .\"See
1530 .\".BR slapd.replog (5)
1531 .\"for more information.  The specified file should be located
1532 .\"in a directory with limited read/write/execute access as the replication
1533 .\"logs may contain sensitive information.
1534 .TP
1535 .B olcRootDN: <dn>
1536 Specify the distinguished name that is not subject to access control 
1537 or administrative limit restrictions for operations on this database.
1538 This DN may or may not be associated with an entry.  An empty root
1539 DN (the default) specifies no root access is to be granted.  It is
1540 recommended that the rootdn only be specified when needed (such as
1541 when initially populating a database).  If the rootdn is within
1542 a namingContext (suffix) of the database, a simple bind password
1543 may also be provided using the
1544 .B olcRootPW
1545 directive. Note that the rootdn is always needed when using syncrepl.
1546 .TP
1547 .B olcRootPW: <password>
1548 Specify a password (or hash of the password) for the rootdn.  The
1549 password can only be set if the rootdn is within the namingContext
1550 (suffix) of the database.
1551 This option accepts all RFC 2307 userPassword formats known to
1552 the server (see 
1553 .B olcPasswordHash
1554 description) as well as cleartext.
1555 .BR slappasswd (8) 
1556 may be used to generate a hash of a password.  Cleartext
1557 and \fB{CRYPT}\fP passwords are not recommended.  If empty
1558 (the default), authentication of the root DN is by other means
1559 (e.g. SASL).  Use of SASL is encouraged.
1560 .TP
1561 .B olcSubordinate: [TRUE | FALSE | advertise]
1562 Specify that the current backend database is a subordinate of another
1563 backend database. A subordinate  database may have only one suffix. This
1564 option may be used to glue multiple databases into a single namingContext.
1565 If the suffix of the current database is within the namingContext of a
1566 superior database, searches against the superior database will be
1567 propagated to the subordinate as well. All of the databases
1568 associated with a single namingContext should have identical rootdns.
1569 Behavior of other LDAP operations is unaffected by this setting. In
1570 particular, it is not possible to use moddn to move an entry from
1571 one subordinate to another subordinate within the namingContext.
1572
1573 If the optional \fBadvertise\fP flag is supplied, the naming context of
1574 this database is advertised in the root DSE. The default is to hide this
1575 database context, so that only the superior context is visible.
1576
1577 If the slap tools
1578 .BR slapcat (8),
1579 .BR slapadd (8),
1580 or
1581 .BR slapindex (8)
1582 are used on the superior database, any glued subordinates that support
1583 these tools are opened as well.
1584
1585 Databases that are glued together should usually be configured with the
1586 same indices (assuming they support indexing), even for attributes that
1587 only exist in some of these databases. In general, all of the glued
1588 databases should be configured as similarly as possible, since the intent
1589 is to provide the appearance of a single directory.
1590
1591 Note that the \fIsubordinate\fP functionality is implemented internally
1592 by the \fIglue\fP overlay and as such its behavior will interact with other
1593 overlays in use. By default, the glue overlay is automatically configured as
1594 the last overlay on the superior backend. Its position on the backend
1595 can be explicitly configured by setting an \fBoverlay glue\fP directive
1596 at the desired position. This explicit configuration is necessary e.g.
1597 when using the \fIsyncprov\fP overlay, which needs to follow \fIglue\fP
1598 in order to work over all of the glued databases. E.g.
1599 .RS
1600 .nf
1601         dn: olcDatabase={1}bdb,cn=config
1602         olcSuffix: dc=example,dc=com
1603         ...
1604
1605         dn: olcOverlay={0}glue,olcDatabase={1}bdb,cn=config
1606         ...
1607
1608         dn: olcOverlay={1}syncprov,olcDatabase={1}bdb,cn=config
1609         ...
1610 .fi
1611 .RE
1612 See the Overlays section below for more details.
1613 .TP
1614 .B olcSuffix: <dn suffix>
1615 Specify the DN suffix of queries that will be passed to this 
1616 backend database.  Multiple suffix lines can be given and at least one is 
1617 required for each database definition.
1618 If the suffix of one database is "inside" that of another, the database
1619 with the inner suffix must come first in the configuration file.
1620 .HP
1621 .hy 0
1622 .B olcSyncrepl: rid=<replica ID>
1623 .B provider=ldap[s]://<hostname>[:port]
1624 .B searchbase=<base DN>
1625 .B [type=refreshOnly|refreshAndPersist]
1626 .B [interval=dd:hh:mm:ss]
1627 .B [retry=[<retry interval> <# of retries>]+]
1628 .B [filter=<filter str>]
1629 .B [scope=sub|one|base|subord]
1630 .B [attrs=<attr list>]
1631 .B [exattrs=<attr list>]
1632 .B [attrsonly]
1633 .B [sizelimit=<limit>]
1634 .B [timelimit=<limit>]
1635 .B [schemachecking=on|off]
1636 .B [bindmethod=simple|sasl]
1637 .B [binddn=<dn>]
1638 .B [saslmech=<mech>]
1639 .B [authcid=<identity>]
1640 .B [authzid=<identity>]
1641 .B [credentials=<passwd>]
1642 .B [realm=<realm>]
1643 .B [secprops=<properties>]
1644 .B [starttls=yes|critical]
1645 .B [tls_cert=<file>]
1646 .B [tls_key=<file>]
1647 .B [tls_cacert=<file>]
1648 .B [tls_cacertdir=<path>]
1649 .B [tls_reqcert=never|allow|try|demand]
1650 .B [tls_ciphersuite=<ciphers>]
1651 .B [tls_crlcheck=none|peer|all]
1652 .B [logbase=<base DN>]
1653 .B [logfilter=<filter str>]
1654 .B [syncdata=default|accesslog|changelog]
1655 .RS
1656 Specify the current database as a replica which is kept up-to-date with the 
1657 master content by establishing the current
1658 .BR slapd (8)
1659 as a replication consumer site running a
1660 .B syncrepl
1661 replication engine.
1662 The replica content is kept synchronized to the master content using
1663 the LDAP Content Synchronization protocol. Refer to the
1664 "OpenLDAP Administrator's Guide" for detailed information on
1665 setting up a replicated
1666 .B slapd
1667 directory service using the 
1668 .B syncrepl
1669 replication engine.
1670
1671 .B rid
1672 identifies the current
1673 .B syncrepl
1674 directive within the replication consumer site.
1675 It is a non-negative integer having no more than three digits.
1676
1677 .B provider
1678 specifies the replication provider site containing the master content
1679 as an LDAP URI. If <port> is not given, the standard LDAP port number
1680 (389 or 636) is used.
1681
1682 The content of the
1683 .B syncrepl
1684 replica is defined using a search
1685 specification as its result set. The consumer
1686 .B slapd
1687 will send search requests to the provider
1688 .B slapd
1689 according to the search specification. The search specification includes
1690 .B searchbase, scope, filter, attrs, attrsonly, sizelimit,
1691 and
1692 .B timelimit
1693 parameters as in the normal search specification. The
1694 .B exattrs
1695 option may also be used to specify attributes that should be omitted
1696 from incoming entries.
1697 The \fBscope\fP defaults to \fBsub\fP, the \fBfilter\fP defaults to
1698 \fB(objectclass=*)\fP, and there is no default \fBsearchbase\fP. The
1699 \fBattrs\fP list defaults to \fB"*,+"\fP to return all user and operational
1700 attributes, and \fBattrsonly\fP and \fBexattrs\fP are unset by default.
1701 The \fBsizelimit\fP and \fBtimelimit\fP only
1702 accept "unlimited" and positive integers, and both default to "unlimited".
1703 Note, however, that any provider-side limits for the replication identity
1704 will be enforced by the provider regardless of the limits requested
1705 by the LDAP Content Synchronization operation, much like for any other
1706 search operation.
1707
1708 The LDAP Content Synchronization protocol has two operation types.
1709 In the
1710 .B refreshOnly
1711 operation, the next synchronization search operation
1712 is periodically rescheduled at an interval time (specified by 
1713 .B interval
1714 parameter; 1 day by default)
1715 after each synchronization operation finishes.
1716 In the
1717 .B refreshAndPersist
1718 operation, a synchronization search remains persistent in the provider slapd.
1719 Further updates to the master replica will generate
1720 .B searchResultEntry
1721 to the consumer slapd as the search responses to the persistent
1722 synchronization search.
1723
1724 If an error occurs during replication, the consumer will attempt to
1725 reconnect according to the
1726 .B retry
1727 parameter which is a list of the <retry interval> and <# of retries> pairs.
1728 For example, retry="60 10 300 3" lets the consumer retry every 60 seconds
1729 for the first 10 times and then retry every 300 seconds for the next 3
1730 times before stop retrying. The `+' in <# of retries> means indefinite
1731 number of retries until success.
1732
1733 The schema checking can be enforced at the LDAP Sync
1734 consumer site by turning on the
1735 .B schemachecking
1736 parameter. The default is off.
1737
1738 A
1739 .B bindmethod
1740 of 
1741 .B simple
1742 requires the options 
1743 .B binddn
1744 and 
1745 .B credentials
1746 and should only be used when adequate security services
1747 (e.g. TLS or IPSEC) are in place.
1748 A
1749 .B bindmethod
1750 of
1751 .B sasl
1752 requires the option
1753 .B saslmech.
1754 Depending on the mechanism, an authentication identity and/or
1755 credentials can be specified using
1756 .B authcid
1757 and
1758 .B credentials.
1759 The
1760 .B authzid
1761 parameter may be used to specify an authorization identity.
1762 Specific security properties (as with the
1763 .B sasl-secprops
1764 keyword above) for a SASL bind can be set with the
1765 .B secprops
1766 option. A non default SASL realm can be set with the
1767 .B realm 
1768 option.
1769 The provider, other than allow authentication of the syncrepl identity,
1770 should grant that identity appropriate access privileges to the data 
1771 that is being replicated (\fBaccess\fP directive), and appropriate time 
1772 and size limits (\fBlimits\fP directive).
1773
1774
1775 The
1776 .B starttls
1777 parameter specifies use of the StartTLS extended operation
1778 to establish a TLS session before Binding to the provider. If the
1779 .B critical
1780 argument is supplied, the session will be aborted if the StartTLS request
1781 fails. Otherwise the syncrepl session continues without TLS.  Note that the
1782 main slapd TLS settings are not used by the syncrepl engine;
1783 by default the TLS parameters from ETCDIR/ldap.conf will be used.
1784 TLS settings may be specified here, in which case the ldap.conf settings
1785 will be completely ignored.
1786
1787 Rather than replicating whole entries, the consumer can query logs of
1788 data modifications. This mode of operation is referred to as \fIdelta
1789 syncrepl\fP. In addition to the above parameters, the
1790 .B logbase
1791 and
1792 .B logfilter
1793 parameters must be set appropriately for the log that will be used. The
1794 .B syncdata
1795 parameter must be set to either "accesslog" if the log conforms to the
1796 .BR slapo-accesslog (5)
1797 log format, or "changelog" if the log conforms
1798 to the obsolete \fIchangelog\fP format. If the
1799 .B syncdata
1800 parameter is omitted or set to "default" then the log parameters are
1801 ignored.
1802 .RE
1803 .\".TP
1804 .\".B updatedn <dn>
1805 .\"This option is only applicable in a slave
1806 .\"database updated using
1807 .\".BR slurpd(8). 
1808 .\"It specifies the DN permitted to update (subject to access controls)
1809 .\"the replica (typically, this is the DN
1810 .\".BR slurpd (8)
1811 .\"binds to update the replica).  Generally, this DN
1812 .\".I should not
1813 .\"be the same as the
1814 .\".B rootdn 
1815 .\"used at the master.
1816 .TP
1817 .B olcUpdateRef: <url>
1818 Specify the referral to pass back when
1819 .BR slapd (8)
1820 is asked to modify a replicated local database.
1821 If multiple values are specified, each url is provided.
1822
1823 .SH DATABASE-SPECIFIC OPTIONS
1824 Each database may allow specific configuration options; they are
1825 documented separately in the backends' manual pages.
1826 .SH BACKENDS
1827 The following backends can be compiled into slapd.
1828 They are documented in the
1829 .BR slapd-<backend> (5)
1830 manual pages.
1831 .TP
1832 .B bdb
1833 This is the recommended primary backend for a normal slapd database.
1834 It takes care to configure it properly.
1835 It uses the transactional database interface of the Sleepycat Berkeley
1836 DB (BDB) package to store data.
1837 .TP
1838 .B config
1839 This backend is used to manage the configuration of slapd run-time.
1840 .TP
1841 .B dnssrv
1842 This backend is experimental.
1843 It serves up referrals based upon SRV resource records held in the
1844 Domain Name System.
1845 .TP
1846 .B hdb
1847 This is a variant of the BDB backend that uses a hierarchical database
1848 layout which supports subtree renames.
1849 .TP
1850 .B ldap
1851 This backend acts as a proxy to forward incoming requests to another
1852 LDAP server.
1853 .TP
1854 .B ldif
1855 This database uses the filesystem to build the tree structure
1856 of the database, using plain ascii files to store data.
1857 Its usage should be limited to very simple databases, where performance
1858 is not a requirement.
1859 .TP
1860 .B meta
1861 This backend performs basic LDAP proxying with respect to a set of
1862 remote LDAP servers. It is an enhancement of the ldap backend.
1863 .TP
1864 .B monitor
1865 This backend provides information about the running status of the slapd
1866 daemon.
1867 .TP
1868 .B null
1869 Operations in this backend succeed but do nothing.
1870 .TP
1871 .B passwd
1872 This backend is provided for demonstration purposes only.
1873 It serves up user account information from the system
1874 .BR passwd (5)
1875 file.
1876 .TP
1877 .B perl
1878 This backend embeds a
1879 .BR perl (1)
1880 interpreter into slapd.
1881 It runs Perl subroutines to implement LDAP operations.
1882 .TP
1883 .B relay
1884 This backend is experimental.
1885 It redirects LDAP operations to another database
1886 in the same server, based on the naming context of the request.
1887 Its use requires the 
1888 .B rwm
1889 overlay (see
1890 .BR slapo-rwm (5)
1891 for details) to rewrite the naming context of the request.
1892 It is primarily intended to implement virtual views on databases
1893 that actually store data.
1894 .TP
1895 .B shell
1896 This backend executes external programs to implement LDAP operations.
1897 It is primarily intended to be used in prototypes.
1898 .TP
1899 .B sql
1900 This backend is experimental.
1901 It services LDAP requests from an SQL database.
1902 .SH OVERLAYS
1903 An overlay is a piece of
1904 code that intercepts database operations in order to extend or change
1905 them. Overlays are pushed onto
1906 a stack over the database, and so they will execute in the reverse
1907 of the order in which they were configured and the database itself
1908 will receive control last of all.
1909
1910 Overlays must be configured as child entries of a specific database. The
1911 entry's RDN must be of the form
1912 .B olcOverlay={x}<overlaytype>
1913 and the entry must have the olcOverlayConfig objectClass. Normally the
1914 config engine generates the "{x}" index in the RDN automatically, so
1915 it can be omitted when initially loading these entries.
1916
1917 The following overlays can be compiled into slapd.
1918 They are documented in the
1919 .BR slapo-<overlay> (5)
1920 manual pages.
1921 .TP
1922 .B accesslog
1923 Access Logging.
1924 This overlay can record accesses to a given backend database on another
1925 database.
1926 .TP
1927 .B auditlog
1928 Audit Logging.
1929 This overlay records changes on a given backend database to an LDIF log
1930 file.
1931 By default it is not built.
1932 .TP
1933 .B chain
1934 Chaining.
1935 This overlay allows automatic referral chasing when a referral would
1936 have been returned, either when configured by the server or when 
1937 requested by the client.
1938 .TP
1939 .B denyop
1940 Deny Operation.
1941 This overlay allows selected operations to be denied, similar to the
1942 \fBolcRestrict\fP option.
1943 .TP
1944 .B dyngroup
1945 Dynamic Group.
1946 This is a demo overlay which extends the Compare operation to detect
1947 members of a dynamic group.
1948 It has no effect on any other operations.
1949 .TP
1950 .B dynlist
1951 Dynamic List.
1952 This overlay allows expansion of dynamic groups and more.
1953 .TP
1954 .B lastmod
1955 Last Modification.
1956 This overlay maintains a service entry in the database with the DN,
1957 modification type, modifiersName and modifyTimestamp of the last write
1958 operation performed on that database.
1959 .TP
1960 .B pcache
1961 Proxycache.
1962 This overlay allows caching of LDAP search requests in a local database.
1963 It is most often used with the ldap or meta backends.
1964 .TP
1965 .B ppolicy
1966 Password Policy.
1967 This overlay provides a variety of password control mechanisms,
1968 e.g. password aging, password reuse and duplication control, mandatory
1969 password resets, etc.
1970 .TP
1971 .B refint
1972 Referential Integrity.
1973 This overlay can be used with a backend database such as
1974 .BR slapd-bdb (5)
1975 to maintain the cohesiveness of a schema which utilizes reference
1976 attributes.
1977 .TP
1978 .B retcode
1979 Return Code.
1980 This overlay is useful to test the behavior of clients when
1981 server-generated erroneous and/or unusual responses occur.
1982 .TP
1983 .B rwm
1984 Rewrite/remap.
1985 This overlay is experimental.
1986 It performs basic DN/data rewrite and
1987 objectClass/attributeType mapping.
1988 .TP
1989 .B syncprov
1990 Syncrepl Provider.
1991 This overlay implements the provider-side support for
1992 .B syncrepl
1993 replication, including persistent search functionality.
1994 .TP
1995 .B translucent
1996 Translucent Proxy.
1997 This overlay can be used with a backend database such as
1998 .BR slapd-bdb (5)
1999 to create a "translucent proxy".
2000 Content of entries retrieved from a remote LDAP server can be partially
2001 overridden by the database.
2002 .TP
2003 .B unique
2004 Attribute Uniqueness.
2005 This overlay can be used with a backend database such as
2006 .BR slapd-bdb (5)
2007 to enforce the uniqueness of some or all attributes within a subtree.
2008 .SH EXAMPLES
2009 .LP
2010 Here is a short example of a configuration in LDIF suitable for use with
2011 .BR slapadd (8)
2012 :
2013 .LP
2014 .RS
2015 .nf
2016 dn: cn=config
2017 objectClass: olcGlobal
2018 cn: config
2019 olcPidFile: LOCALSTATEDIR/slapd.pid
2020 olcAttributeOptions: x-hidden lang-
2021
2022 dn: cn=schema,cn=config
2023 objectClass: olcSchemaConfig
2024 cn: schema
2025
2026 include: SYSCONFDIR/schema/core.ldif
2027
2028 dn: olcDatabase=frontend,cn=config
2029 objectClass: olcDatabaseConfig
2030 objectClass: olcFrontendConfig
2031 olcDatabase: frontend
2032 # Subtypes of "name" (e.g. "cn" and "ou") with the
2033 # option ";x-hidden" can be searched for/compared,
2034 # but are not shown.  See \fBslapd.access\fP(5).
2035 olcAccess: to attrs=name;x-hidden by * =cs
2036 # Protect passwords.  See \fBslapd.access\fP(5).
2037 olcAccess: to attrs=userPassword  by * auth
2038 # Read access to other attributes and entries.
2039 olcAccess: to * by * read
2040
2041 # set a rootpw for the config database so we can bind.
2042 # deny access to everyone else.
2043 dn: olcDatabase=config,cn=config
2044 objectClass: olcDatabaseConfig
2045 olcDatabase: config
2046 olcRootPW: {SSHA}XKYnrjvGT3wZFQrDD5040US592LxsdLy
2047 olcAccess: to * by * none
2048
2049 dn: olcDatabase=bdb,cn=config
2050 objectClass: olcDatabaseConfig
2051 objectClass: olcBdbConfig
2052 olcDatabase: bdb
2053 olcSuffix: "dc=our-domain,dc=com"
2054 # The database directory MUST exist prior to
2055 # running slapd AND should only be accessible
2056 # by the slapd/tools. Mode 0700 recommended.
2057 olcDbDirectory: LOCALSTATEDIR/openldap-data
2058 # Indices to maintain
2059 olcDbIndex:     objectClass  eq
2060 olcDbIndex:     cn,sn,mail   pres,eq,approx,sub
2061
2062 # We serve small clients that do not handle referrals,
2063 # so handle remote lookups on their behalf.
2064 dn: olcDatabase=ldap,cn=config
2065 objectClass: olcDatabaseConfig
2066 objectClass: olcLdapConfig
2067 olcDatabase: ldap
2068 olcSuffix: ""
2069 olcDbUri: ldap://ldap.some-server.com/
2070 .fi
2071 .RE
2072 .LP
2073 Assuming the above data was saved in a file named "config.ldif" and the
2074 ETCDIR/slapd.d directory has been created, this command will initialize
2075 the configuration:
2076 .RS
2077 .nf
2078 slapadd -F ETCDIR/slapd.d -n 0 -l config.ldif
2079 .fi
2080 .RE
2081
2082 .LP
2083 "OpenLDAP Administrator's Guide" contains a longer annotated
2084 example of a slapd configuration.
2085
2086 Alternatively, an existing slapd.conf file can be converted to the new
2087 format using slapd or any of the slap tools:
2088 .RS
2089 .nf
2090 slaptest -f ETCDIR/slapd.conf -F ETCDIR/slapd.d
2091 .fi
2092 .RE
2093
2094 .SH FILES
2095 .TP
2096 ETCDIR/slapd.conf
2097 default slapd configuration file
2098 .TP
2099 ETCDIR/slapd.d
2100 default slapd configuration directory
2101 .SH SEE ALSO
2102 .BR ldap (3),
2103 .BR ldif (5),
2104 .BR slapd\-bdb (5),
2105 .BR slapd\-dnssrv (5),
2106 .BR slapd\-hdb (5),
2107 .BR slapd\-ldap (5),
2108 .BR slapd\-ldif (5),
2109 .BR slapd\-meta (5),
2110 .BR slapd\-monitor (5),
2111 .BR slapd\-null (5),
2112 .BR slapd\-passwd (5),
2113 .BR slapd\-perl (5),
2114 .BR slapd\-relay (5),
2115 .BR slapd\-shell (5),
2116 .BR slapd\-sql (5),
2117 .BR slapd.access (5),
2118 .BR slapd.plugin (5),
2119 .BR slapd.replog (5),
2120 .BR slapd (8),
2121 .BR slapacl (8),
2122 .BR slapadd (8),
2123 .BR slapauth (8),
2124 .BR slapcat (8),
2125 .BR slapdn (8),
2126 .BR slapindex (8),
2127 .BR slappasswd (8),
2128 .BR slaptest (8),
2129 .BR slurpd (8).
2130
2131 Known overlays are documented in
2132 .BR slapo\-accesslog (5),
2133 .BR slapo\-auditlog (5),
2134 .BR slapo\-chain (5),
2135 .BR slapo\-dynlist (5),
2136 .BR slapo\-lastmod (5),
2137 .BR slapo\-pcache (5),
2138 .BR slapo\-ppolicy (5),
2139 .BR slapo\-refint (5),
2140 .BR slapo\-retcode (5),
2141 .BR slapo\-rwm (5),
2142 .BR slapo\-syncprov (5),
2143 .BR slapo\-translucent (5),
2144 .BR slapo\-unique (5).
2145 .LP
2146 "OpenLDAP Administrator's Guide" (http://www.OpenLDAP.org/doc/admin/)
2147 .SH ACKNOWLEDGEMENTS
2148 .B OpenLDAP
2149 is developed and maintained by The OpenLDAP Project (http://www.openldap.org/).
2150 .B OpenLDAP
2151 is derived from University of Michigan LDAP 3.3 Release.