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