]> git.sur5r.net Git - openldap/blob - doc/man/man5/slapd.conf.5
Clean up attributetype and objectclass description
[openldap] / doc / man / man5 / slapd.conf.5
1 .TH SLAPD.CONF 5 "5 August 1999" "OpenLDAP LDVERSION"
2 .\" $OpenLDAP$
3 .\" Copyright 1998-2000 The OpenLDAP Foundation All Rights Reserved.
4 .\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
5 .SH NAME
6 slapd.conf \- configuration file for slapd, the stand-alone LDAP daemon
7 .SH SYNOPSIS
8 ETCDIR/slapd.conf
9 .SH DESCRIPTION
10 The file
11 .B ETCDIR/slapd.conf
12 contains configuration information for the
13 .BR slapd (8)
14 daemon.  This configuration file is also used by the
15 .BR slurpd (8)
16 replication daemon and by the SLAPD tools
17 .BR slapadd (8),
18 .BR slapcat (8),
19 and
20 .BR slapindex (8).
21 .LP
22 The
23 .B slapd.conf
24 file consists of a series of global configuration options that apply to
25 .B slapd
26 as a whole (including all backends), followed by zero or more database
27 backend definitions that contain information specific to a backend
28 instance.
29 .LP
30 The general format of
31 .B slapd.conf
32 is as follows:
33 .LP
34 .nf
35     # comment - these options apply to every database
36     <global configuration options>
37     # first database definition & configuration options
38     database    <backend 1 type>
39     <configuration options specific to backend 1>
40     # subsequent database definitions & configuration options
41     ...
42 .fi
43 .LP
44 As many backend-specific sections as desired may be included.  Global
45 options can be overridden in a backend (for options that appear more
46 than once, the last appearance in the
47 .B slapd.conf
48 file is used).  Blank lines and comment lines beginning with a `#'
49 character are ignored. If a line begins with white space, it is
50 considered a continuation of the previous line.
51 .LP
52 Arguments on configuration lines are separated by white space. If an
53 argument contains white space, the argument should be enclosed in
54 double quotes.  If an argument contains a double quote (`"') or a
55 backslash character (`\\'), the character should be preceded by a
56 backslash character.
57 .LP
58 The specific configuration options available are discussed below in the
59 Global Configuration Options, General Backend Options, LDBM
60 Backend-Specific Options, Shell Backend-Specific Options, and Password
61 Backend-Specific Options sections.  Refer to "The SLAPD and SLURPD
62 Administrator's Guide" for more details on the slapd configuration
63 file.
64 .SH GLOBAL CONFIGURATION OPTIONS
65 Options described in this section apply to all backends, unless specifically 
66 overridden in a backend definition. Arguments that should be replaced by 
67 actual text are shown in brackets <>.
68 .TP
69 .B access to <what> [ by <who> <access> <control> ]+
70 Grant access (specified by <access>) to a set of entries and/or
71 attributes (specified by <what>) by one or more requestors (specified
72 by <who>).
73 See Developer's FAQ (http://www.openldap.org/faq/) for details.
74 .HP
75 .hy 0
76 .B attributetype (\ <oid> [NAME\ <name>] [OBSOLETE]\
77  [DESC\ <description>]\
78  [SUP\ <oid>] [EQUALITY\ <oid>] [ORDERING\ <oid>]\
79  [SUBSTR\ <oid>] [SYNTAX\ <oidlen>] [SINGLE\-VALUE] [COLLECTIVE]\
80  [NO\-USER\-MODIFICATION] [USAGE\ <attributeUsage>]\ )
81 .RS
82 Specify an attribute type using the LDAPv3 syntax defined in RFC 2252.
83 The slapd parser extends the RFC 2252 definition by allowing string
84 forms as well as numeric OIDs to be used for the attribute OID and
85 attribute syntax OID.
86 (See the
87 .B objectidentifier
88 description.) Currently the syntax name parser is case-sensitive.
89 The known syntax names are:
90 .RS
91 .RS
92 .PD 0
93 AttributeTypeDescription Audio Binary BitString Certificate CertificateList
94 CertificatePair DN DeliveryMethod DirectoryString DITContentRuleDescription
95 DITStructureRuleDescription EnhancedGuide FacsimileTelephoneNumber
96 GeneralizedTime Guide IA5String Integer MatchingRuleDescription
97 MatchingRuleUseDescription MailPreference NameAndOptionalUUID
98 NameFormDescription NumericString ObjectClassDescription OID
99 OtherMailbox OctetString PostalAddress ProtocolInformation
100 PresentationAddress PrintableString SupportedAlgorithm TelephoneNumber
101 TeletexTerminalIdentifier TelexNumber UTCTime LDAPSyntaxDescription
102 SubstringAssertion NISnetgrouptriple Bootparameter
103 .PD
104 .RE
105 .RE
106 .RE
107 .TP
108 .B concurrency <integer>
109 Specify a desired level of concurrency.  Provided to the underlying
110 thread system as a hint.  The default is not to provdide any hint.
111 .HP
112 .B defaultaccess { none | auth | compare | search | read | write }
113 .RS
114 Specify the default access level to grant requestors when
115 no access directives were provided for the database.
116 The default behavior is to grant 'read' access.  It is
117 recommended that
118 .B access
119 directives be used instead.
120 .RE
121 .TP
122 .B idletimeout <integer>
123 Specify the number of seconds to wait before forcibly closing
124 an idle client connections.  A idletimeout of 0 disables this
125 feature.  The default is 0.
126 .TP
127 .B include <filename>
128 Read additional configuration information from the given file before
129 continuing with the next line of the current file.
130 .TP
131 .B pidfile <filename>
132 The ( absolute ) name of a file that will hold the 
133 .B slapd
134 server's process ID ( see
135 .BR getpid (2)
136 ) if started without the debugging command line option.
137 .TP
138 .B argsfile <filename>
139 The ( absolute ) name of a file that will hold the 
140 .B slapd
141 server's command line options
142 if started without the debugging command line option.
143 .TP
144 .B loglevel <integer>
145 Specify the level at which debugging statements and operation 
146 statistics should be syslogged (currently logged to the
147 .BR syslogd (8) 
148 LOG_LOCAL4 facility).  Log levels are additive, and available levels
149 are:
150 .RS
151 .RS
152 .PD 0
153 .TP
154 .B 1
155 trace function calls
156 .TP
157 .B 2
158 debug packet handling
159 .TP
160 .B 4
161 heavy trace debugging
162 .TP
163 .B 8
164 connection management
165 .TP
166 .B 16
167 print out packets sent and received
168 .TP
169 .B 32
170 search filter processing
171 .TP
172 .B 64
173 configuration file processing
174 .TP
175 .B 128
176 access control list processing
177 .TP
178 .B 256
179 stats log connections/operations/results
180 .TP
181 .B 512
182 stats log entries sent
183 .TP
184 .B 1024
185 print communication with shell backends
186 .TP
187 .B 2048
188 entry parsing
189 .PD
190 .RE
191 .RE
192 .HP
193 .B objectclass ( <oid> [NAME <name>] [DESC <description] [OBSOLETE]\
194  [SUP <oids>] [{ ABSTRACT | STRUCTURAL | AUXILIARY }] [MUST <oids>]\
195  [MAY <oids>] )
196 .RS
197 Specify an objectclass using the LDAPv3 syntax defined in RFC 2252.
198 The slapd parser extends the RFC 2252 definition by allowing string
199 forms as well as numeric OIDs to be used for the object class OID.
200 (See the
201 .B
202 objectidentifier
203 description.)  Object classes are "STRUCTURAL" by default.
204 .RE
205 .TP
206 .B objectidentifier <name> { <oid> | <name>[:<suffix>] }
207 Define a string name that equates to the given OID. The string can be used
208 in place of the numeric OID in objectclass and attribute definitions. The
209 name can also be used with a suffix of the form ":xx" in which case the
210 value "oid.xx" will be used.
211 .TP
212 .B referral <url>
213 Specify the referral to pass back when
214 .BR slapd (8)
215 cannot find a local database to handle a request.
216 If specified multiple times, each url is provided.
217 .TP
218 .B schemacheck { on | off }
219 Turn schema checking on or off. The default is on.
220 .TP
221 .B sizelimit <integer>
222 Specify the maximum number of entries to return from a search operation.
223 The default size limit is 500.
224 .TP
225 .B srvtab <filename>
226 Specify the srvtab file in which the kerberos keys necessary for
227 authenticating clients using kerberos can be found. This option is only
228 meaningful if you are using Kerberos authentication.
229 .TP
230 .B timelimit <integer>
231 Specify the maximum number of seconds (in real time)
232 .B slapd
233 will spend answering a search request.  The default time limit is 3600.
234 .SH TLS OPTIONS
235 If
236 .B slapd
237 is build with support for Transport Layer Security, there are more options
238 you can specify.
239 .TP
240 .B TLSCipherSuite <cipher-suite-spec>
241 Permits configuring what ciphers will be accepted and the preference order.
242 <cipher-suite-spec> should be a cipher specification for OpenSSL.  Example:
243
244 TLSCipherSuite HIGH:MEDIUM:+SSLv2
245
246 To check what ciphers a given spec selects, use:
247
248 openssl ciphers -v <cipher-suite-spec>
249 .TP
250 .B TLSCertificateFile <filename>
251 Specifies the file that contains the
252 .B slapd
253 server certificate.
254 .TP
255 .B TLSCertificateKeyFile <filename>
256 Specifies the file that contains the
257 .B slapd
258 server private key that matches the certificate stored in the
259 .B TLSCertificateFile
260 file.  Currently, the private key must not be protected with a password, so
261 it is of critical importance that it is protected carefully. 
262 .SH GENERAL BACKEND OPTIONS
263 Options in this section only apply to the configuration file section
264 for the backend in which they are defined.  They are supported by every
265 type of backend.
266 .TP
267 .B database <databasetype>
268 Mark the beginning of a new database instance definition. <databasetype>
269 should be one of
270 .B ldbm,
271 .B shell,
272 or
273 .B passwd
274 depending on which backend will serve the database.
275 .TP
276 .B lastmod on | off
277 Controls whether
278 .B slapd
279 will automatically maintain the 
280 modifiersName, modifyTimestamp, creatorsName, and 
281 createTimestamp attributes for entries.  By default, lastmod is on.
282 .TP
283 .B readonly on | off
284 This option puts the database into "read-only" mode.  Any attempts to 
285 modify the database will return an "unwilling to perform" error.  By
286 default, readonly is off.
287 .HP
288 .B replica host=<hostname>[:port] "binddn=<DN>" bindmethod=simple |\
289  kerberos [credentials=<password>] [srvtab=<filename> ]
290 .RS
291 Specify a replication site for this database.  Refer to "The SLAPD and
292 SLURPD Administrator's Guide" for detailed information on setting up
293 a replicated
294 .B slapd
295 directory service.
296 .RE
297 .TP
298 .B replogfile <filename>
299 Specify the name of the replication log file to log changes to.  
300 The replication log is typically written by
301 .BR slapd (8)
302 and read by
303 .BR slurpd (8).
304 See
305 .BR slapd.replog (5)
306 for more information.
307 .TP
308 .B rootdn <dn>
309 Specify the DN of an entry that is not subject to access control 
310 or administrative limit restrictions for operations on this database.
311 .TP
312 .B rootpw <password>
313 Specify a password (or hash of the password) for the rootdn.
314 This option accepts all RFC 2307 userPassword formats known to
315 the server including \fB{SSHA}\fP, \fB{SHA}\fP, \fB{SMD5}\fP,
316 \fB{MD5}\fP, \fB{CRYPT}\fP, and cleartext schemes.
317 .BR slappasswd (8) 
318 may be used to generate a hash of a password.  Cleartext
319 and \fB{CRYPT}\fP passwords are not recommended.
320 .TP
321 .B suffix <dn suffix>
322 Specify the DN suffix of queries that will be passed to this 
323 backend database.  Multiple suffix lines can be given and at least one is 
324 required for each database definition.
325 .TP
326 .B updatedn <dn>
327 This option is only applicable in a slave
328 .B slapd.
329 It specifies the DN allowed to make changes to the replica (typically,
330 this is the DN
331 .BR slurpd (8)
332 binds as when making changes to the replica).
333 .TP
334 .B updateref <url>
335 Specify the referral to pass back when
336 .BR slapd (8)
337 is asked to modify a replicated local database.
338 If specified multiple times, each url is provided.
339 .SH LDBM BACKEND-SPECIFIC OPTIONS
340 Options in this category only apply to the LDBM backend database. That is,
341 they must follow a "database ldbm" line and come before any subsequent
342 "database" lines.  The LDBM backend is a high-performance database that
343 makes extensive use of indexing and caching to speed data access. 
344 .TP
345 .B cachesize <integer>
346 Specify the size in entries of the in-memory cache maintained 
347 by the LDBM backend database instance.  The default is 1000 entries.
348 .TP
349 .B dbcachesize <integer>
350 Specify the size in bytes of the in-memory cache associated 
351 with each open index file. If not supported by the underlying database 
352 method, this option is ignored without comment.  The default is 100000 bytes.
353 .TP
354 .B dbnolocking
355 Specify that no database locking should be performed.  
356 Enabling this option may improve performance at the expense of data security.
357 .B dbnosync
358 Specify that on-disk database contents should not be immediately
359 synchronized with in memory changes.  Enabling this option may improve
360 performance at the expense of data security.
361 .TP
362 .B directory <directory>
363 Specify the directory where the LDBM files containing this database and
364 associated indexes live.  A separate directory must be specified for
365 each database.  The default is
366 .BR LOCALSTATEDIR/openldap-ldbm .
367 .TP
368 .B
369 index { <attrlist> | default } [ pres,eq,approx,sub,none ]
370 Specify the indexes to maintain for the given attribute. If only 
371 an <attr> is given, the indices specified for \fBdefault\fR
372 are maintained.
373 .TP
374 .B mode <integer>
375 Specify the file protection mode that newly created database 
376 index files should have.  The default is 0600.
377 .SH SHELL BACKEND-SPECIFIC OPTIONS
378 Options in this category only apply to the SHELL backend database. That is,
379 they must follow a "database shell" line and come before any subsequent
380 "database" lines.  The Shell backend executes external programs to
381 implement operations, and is designed to make it easy to tie an existing
382 database to the
383 .B slapd
384 front-end.
385 .TP
386 .B bind <pathname>
387 .TP
388 .B unbind <pathname>
389 .TP
390 .B search <pathname>
391 .TP
392 .B compare <pathname>
393 .TP
394 .B modify <pathname>
395 .TP
396 .B modrdn <pathname>
397 .TP
398 .B add <pathname>
399 .TP
400 .B delete <pathname>
401 .TP
402 .B abandon <pathname>
403 These options specify the pathname of the command to execute in response 
404 to the given LDAP operation. The command given should understand and 
405 follow the input/output conventions described in Appendix B of "The SLAPD
406 and SLURPD Administrator's Guide."
407 .LP
408 Note that you need only supply configuration lines for those commands you
409 want the backend to handle. Operations for which a command is not
410 supplied will be refused with an "unwilling to perform" error.
411 .SH PASSWORD BACKEND-SPECIFIC OPTIONS
412 Options in this category only apply to the PASSWD backend database.
413 That is, they must follow a "database passwd" line and come before any
414 subsequent "database" lines.  The PASSWD database serves up the user
415 account information listed in the system
416 .BR passwd (5)
417 file.
418 .TP
419 .B file <filename>
420 Specifies an alternate passwd file to use.  The default is
421 .B /etc/passwd.
422 .SH EXAMPLE
423 "The SLAPD and SLURPD Administrator's Guide" contains an annotated
424 example of a configuration file.
425 .SH FILES
426 ETCDIR/slapd.conf
427 .SH SEE ALSO
428 .BR ldap (3),
429 .BR slapd.replog (5),
430 .BR locale (5),
431 .BR passwd (5),
432 .BR slapd (8),
433 .BR slapadd (8),
434 .BR slapcat (8),
435 .BR slapindex (8),
436 .BR slappassword (8),
437 .BR slurpd (8),
438 .LP
439 "The SLAPD and SLURPD Administrator's Guide"
440 .SH ACKNOWLEDGEMENTS
441 .B      OpenLDAP
442 is developed and maintained by The OpenLDAP Project (http://www.openldap.org/).
443 .B      OpenLDAP
444 is derived from University of Michigan LDAP 3.3 Release.