OSDN Git Service

sudo: update to version 1.8.17
[linuxjm/jm.git] / manual / sudo / original / man5 / sudoers.ldap.5
1 .\" DO NOT EDIT THIS FILE, IT IS NOT THE MASTER!
2 .\" IT IS GENERATED AUTOMATICALLY FROM sudoers.ldap.mdoc.in
3 .\"
4 .\" Copyright (c) 2003-2016 Todd C. Miller <Todd.Miller@courtesan.com>
5 .\"
6 .\" Permission to use, copy, modify, and distribute this software for any
7 .\" purpose with or without fee is hereby granted, provided that the above
8 .\" copyright notice and this permission notice appear in all copies.
9 .\"
10 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18 .\"
19 .TH "SUDOERS.LDAP" "5" "June 15, 2016" "Sudo 1.8.17" "File Formats Manual"
20 .nh
21 .if n .ad l
22 .SH "NAME"
23 \fBsudoers.ldap\fR
24 \- sudo LDAP configuration
25 .SH "DESCRIPTION"
26 In addition to the standard
27 \fIsudoers\fR
28 file,
29 \fBsudo\fR
30 may be configured
31 via LDAP.
32 This can be especially useful for synchronizing
33 \fIsudoers\fR
34 in a large, distributed environment.
35 .PP
36 Using LDAP for
37 \fIsudoers\fR
38 has several benefits:
39 .TP 4n
40 \fB\(bu\fR
41 \fBsudo\fR
42 no longer needs to read
43 \fIsudoers\fR
44 in its entirety.
45 When LDAP is used, there are only two or three LDAP queries per invocation.
46 This makes it especially fast and particularly usable in LDAP environments.
47 .TP 4n
48 \fB\(bu\fR
49 \fBsudo\fR
50 no longer exits if there is a typo in
51 \fIsudoers\fR.
52 It is not possible to load LDAP data into the server that does
53 not conform to the sudoers schema, so proper syntax is guaranteed.
54 It is still possible to have typos in a user or host name, but
55 this will not prevent
56 \fBsudo\fR
57 from running.
58 .TP 4n
59 \fB\(bu\fR
60 It is possible to specify per-entry options that override the global
61 default options.
62 \fI/etc/sudoers\fR
63 only supports default options and limited options associated with
64 user/host/commands/aliases.
65 The syntax is complicated and can be difficult for users to understand.
66 Placing the options directly in the entry is more natural.
67 .TP 4n
68 \fB\(bu\fR
69 The
70 \fBvisudo\fR
71 program is no longer needed.
72 \fBvisudo\fR
73 provides locking and syntax checking of the
74 \fI/etc/sudoers\fR
75 file.
76 Since LDAP updates are atomic, locking is no longer necessary.
77 Because syntax is checked when the data is inserted into LDAP, there
78 is no need for a specialized tool to check syntax.
79 .PP
80 Another major difference between LDAP and file-based
81 \fIsudoers\fR
82 is that in LDAP,
83 \fBsudo\fR-specific
84 Aliases are not supported.
85 .PP
86 For the most part, there is really no need for
87 \fBsudo\fR-specific
88 Aliases.
89 Unix groups, non-Unix groups (via the
90 \fIgroup_plugin\fR)
91 or user netgroups can be used in place of User_Aliases and Runas_Aliases.
92 Host netgroups can be used in place of Host_Aliases.
93 Since groups and netgroups can also be stored in LDAP there is no real need for
94 \fBsudo\fR-specific
95 aliases.
96 .PP
97 Cmnd_Aliases are not really required either since it is possible
98 to have multiple users listed in a
99 \fRsudoRole\fR.
100 Instead of defining a Cmnd_Alias that is referenced by multiple users,
101 one can create a
102 \fRsudoRole\fR
103 that contains the commands and assign multiple users to it.
104 .SS "SUDOers LDAP container"
105 The
106 \fIsudoers\fR
107 configuration is contained in the
108 \fRou=SUDOers\fR
109 LDAP container.
110 .PP
111 Sudo first looks for the
112 \fRcn=defaults\fR
113 entry in the SUDOers container.
114 If found, the multi-valued
115 \fRsudoOption\fR
116 attribute is parsed in the same manner as a global
117 \fRDefaults\fR
118 line in
119 \fI/etc/sudoers\fR.
120 In the following example, the
121 \fRSSH_AUTH_SOCK\fR
122 variable will be preserved in the environment for all users.
123 .nf
124 .sp
125 .RS 4n
126 dn: cn=defaults,ou=SUDOers,dc=example,dc=com
127 objectClass: top
128 objectClass: sudoRole
129 cn: defaults
130 description: Default sudoOption's go here
131 sudoOption: env_keep+=SSH_AUTH_SOCK
132 .RE
133 .fi
134 .PP
135 The equivalent of a sudoer in LDAP is a
136 \fRsudoRole\fR.
137 It consists of the following attributes:
138 .TP 6n
139 \fBsudoUser\fR
140 A user name, user ID (prefixed with
141 \(oq#\(cq),
142 Unix group name or ID (prefixed with
143 \(oq%\(cq
144 or
145 \(oq%#\(cq
146 respectively), user netgroup (prefixed with
147 \(oq+\(cq),
148 or non-Unix group name or ID (prefixed with
149 \(oq%:\(cq
150 or
151 \(oq%:#\(cq
152 respectively).
153 User netgroups are matched using the user and domain members only;
154 the host member is not used when matching.
155 Non-Unix group support is only available when an appropriate
156 \fIgroup_plugin\fR
157 is defined in the global
158 \fIdefaults\fR
159 \fRsudoRole\fR
160 object.
161 .TP 6n
162 \fBsudoHost\fR
163 A host name, IP address, IP network, or host netgroup (prefixed with a
164 \(oq+\(cq).
165 The special value
166 \fRALL\fR
167 will match any host.
168 Host netgroups are matched using the host (both qualified and unqualified)
169 and domain members only; the user member is not used when matching.
170 .TP 6n
171 \fBsudoCommand\fR
172 A fully-qualified Unix command name with optional command line arguments,
173 potentially including globbing characters (aka wild cards).
174 If a command name is preceded by an exclamation point,
175 \(oq\&!\(cq,
176 the user will be prohibited from running that command.
177 .sp
178 The built-in command
179 \(Lq\fRsudoedit\fR\(Rq
180 is used to permit a user to run
181 \fBsudo\fR
182 with the
183 \fB\-e\fR
184 option (or as
185 \fBsudoedit\fR).
186 It may take command line arguments just as a normal command does.
187 Note that
188 \(Lq\fRsudoedit\fR\(Rq
189 is a command built into
190 \fBsudo\fR
191 itself and must be specified in without a leading path.
192 .sp
193 The special value
194 \fRALL\fR
195 will match any command.
196 .sp
197 If a command name is prefixed with a SHA-2 digest, it will
198 only be allowed if the digest matches.
199 This may be useful in situations where the user invoking
200 \fBsudo\fR
201 has write access to the command or its parent directory.
202 The following digest formats are supported: sha224, sha256, sha384 and sha512.
203 The digest name must be followed by a colon
204 (\(oq:\&\(cq)
205 and then the actual digest, in either hex or base64 format.
206 For example, given the following value for sudoCommand:
207 .nf
208 .sp
209 .RS 10n
210 sha224:0GomF8mNN3wlDt1HD9XldjJ3SNgpFdbjO1+NsQ /bin/ls
211 .RE
212 .fi
213 .RS 6n
214 .sp
215 The user may only run
216 \fI/bin/ls\fR
217 if its sha224 digest matches the specified value.
218 Command digests are only supported by version 1.8.7 or higher.
219 .RE
220 .TP 6n
221 \fBsudoOption\fR
222 Identical in function to the global options described above, but
223 specific to the
224 \fRsudoRole\fR
225 in which it resides.
226 .TP 6n
227 \fBsudoRunAsUser\fR
228 A user name or uid (prefixed with
229 \(oq#\(cq)
230 that commands may be run as or a Unix group (prefixed with a
231 \(oq%\(cq)
232 or user netgroup (prefixed with a
233 \(oq+\(cq)
234 that contains a list of users that commands may be run as.
235 The special value
236 \fRALL\fR
237 will match any user.
238 .sp
239 The
240 \fRsudoRunAsUser\fR
241 attribute is only available in
242 \fBsudo\fR
243 versions
244 1.7.0 and higher.
245 Older versions of
246 \fBsudo\fR
247 use the
248 \fRsudoRunAs\fR
249 attribute instead.
250 .TP 6n
251 \fBsudoRunAsGroup\fR
252 A Unix group or gid (prefixed with
253 \(oq#\(cq)
254 that commands may be run as.
255 The special value
256 \fRALL\fR
257 will match any group.
258 .sp
259 The
260 \fRsudoRunAsGroup\fR
261 attribute is only available in
262 \fBsudo\fR
263 versions
264 1.7.0 and higher.
265 .TP 6n
266 \fBsudoNotBefore\fR
267 A timestamp in the form
268 \fRyyyymmddHHMMSSZ\fR
269 that can be used to provide a start date/time for when the
270 \fRsudoRole\fR
271 will be valid.
272 If multiple
273 \fRsudoNotBefore\fR
274 entries are present, the earliest is used.
275 Note that timestamps must be in Coordinated Universal Time (UTC),
276 not the local timezone.
277 The minute and seconds portions are optional, but some LDAP servers
278 require that they be present (contrary to the RFC).
279 .sp
280 The
281 \fRsudoNotBefore\fR
282 attribute is only available in
283 \fBsudo\fR
284 versions 1.7.5 and higher and must be explicitly enabled via the
285 \fBSUDOERS_TIMED\fR
286 option in
287 \fI/etc/ldap.conf\fR.
288 .TP 6n
289 \fBsudoNotAfter\fR
290 A timestamp in the form
291 \fRyyyymmddHHMMSSZ\fR
292 that indicates an expiration date/time, after which the
293 \fRsudoRole\fR
294 will no longer be valid.
295 If multiple
296 \fRsudoNotAfter\fR
297 entries are present, the last one is used.
298 Note that timestamps must be in Coordinated Universal Time (UTC),
299 not the local timezone.
300 The minute and seconds portions are optional, but some LDAP servers
301 require that they be present (contrary to the RFC).
302 .sp
303 The
304 \fRsudoNotAfter\fR
305 attribute is only available in
306 \fBsudo\fR
307 versions
308 1.7.5 and higher and must be explicitly enabled via the
309 \fBSUDOERS_TIMED\fR
310 option in
311 \fI/etc/ldap.conf\fR.
312 .TP 6n
313 \fBsudoOrder\fR
314 The
315 \fRsudoRole\fR
316 entries retrieved from the LDAP directory have no inherent order.
317 The
318 \fRsudoOrder\fR
319 attribute is an integer (or floating point value for LDAP servers
320 that support it) that is used to sort the matching entries.
321 This allows LDAP-based sudoers entries to more closely mimic the behavior
322 of the sudoers file, where the order of the entries influences the result.
323 If multiple entries match, the entry with the highest
324 \fRsudoOrder\fR
325 attribute is chosen.
326 This corresponds to the
327 \(Lqlast match\(Rq
328 behavior of the sudoers file.
329 If the
330 \fRsudoOrder\fR
331 attribute is not present, a value of 0 is assumed.
332 .sp
333 The
334 \fRsudoOrder\fR
335 attribute is only available in
336 \fBsudo\fR
337 versions 1.7.5 and higher.
338 .PP
339 Each attribute listed above should contain a single value, but there
340 may be multiple instances of each attribute type.
341 A
342 \fRsudoRole\fR
343 must contain at least one
344 \fRsudoUser\fR,
345 \fRsudoHost\fR
346 and
347 \fRsudoCommand\fR.
348 .PP
349 The following example allows users in group wheel to run any command
350 on any host via
351 \fBsudo\fR:
352 .nf
353 .sp
354 .RS 4n
355 dn: cn=%wheel,ou=SUDOers,dc=example,dc=com
356 objectClass: top
357 objectClass: sudoRole
358 cn: %wheel
359 sudoUser: %wheel
360 sudoHost: ALL
361 sudoCommand: ALL
362 .RE
363 .fi
364 .SS "Anatomy of LDAP sudoers lookup"
365 When looking up a sudoer using LDAP there are only two or three
366 LDAP queries per invocation.
367 The first query is to parse the global options.
368 The second is to match against the user's name and the groups that
369 the user belongs to.
370 (The special
371 \fRALL\fR
372 tag is matched in this query too.)
373 If no match is returned for the user's name and groups, a third
374 query returns all entries containing user netgroups and other
375 non-Unix groups and checks to see if the user belongs to any of them.
376 .PP
377 If timed entries are enabled with the
378 \fBSUDOERS_TIMED\fR
379 configuration directive, the LDAP queries include a sub-filter that
380 limits retrieval to entries that satisfy the time constraints, if any.
381 .PP
382 If the
383 \fBNETGROUP_BASE\fR
384 configuration directive is present (see
385 \fIConfiguring ldap.conf\fR
386 below), queries are performed to determine
387 the list of netgroups the user belongs to before the sudoers query.
388 This makes it possible to include netgroups in the sudoers query
389 string in the same manner as Unix groups.
390 The third query mentioned above is not performed unless a group provider
391 plugin is also configured.
392 The actual LDAP queries performed by
393 \fBsudo\fR
394 are as follows:
395 .TP 5n
396 1.\&
397 Match all
398 \fRnisNetgroup\fR
399 records with a
400 \fRnisNetgroupTriple\fR
401 containing the user, host and NIS domain.
402 The query will match
403 \fRnisNetgroupTriple\fR
404 entries with either the short or long form of the host name or
405 no host name specified in the tuple.
406 If the NIS domain is set, the query will match only match entries
407 that include the domain or for which there is no domain present.
408 If the NIS domain is
409 \fInot\fR
410 set, a wildcard is used to match any domain name but be aware that the
411 NIS schema used by some LDAP servers may not support wild cards for
412 \fRnisNetgroupTriple\fR.
413 .TP 5n
414 2.\&
415 Repeated queries are performed to find any nested
416 \fRnisNetgroup\fR
417 records with a
418 \fRmemberNisNetgroup\fR
419 entry that refers to an already-matched record.
420 .PP
421 For sites with a large number of netgroups, using
422 \fBNETGROUP_BASE\fR
423 can significantly speed up
424 \fBsudo\fR's
425 execution time.
426 .SS "Differences between LDAP and non-LDAP sudoers"
427 There are some subtle differences in the way sudoers is handled
428 once in LDAP.
429 Probably the biggest is that according to the RFC, LDAP ordering
430 is arbitrary and you cannot expect that Attributes and Entries are
431 returned in any specific order.
432 .PP
433 The order in which different entries are applied can be controlled
434 using the
435 \fRsudoOrder\fR
436 attribute, but there is no way to guarantee the order of attributes
437 within a specific entry.
438 If there are conflicting command rules in an entry, the negative
439 takes precedence.
440 This is called paranoid behavior (not necessarily the most specific
441 match).
442 .PP
443 Here is an example:
444 .nf
445 .sp
446 .RS 4n
447 # /etc/sudoers:
448 # Allow all commands except shell
449 johnny  ALL=(root) ALL,!/bin/sh
450 # Always allows all commands because ALL is matched last
451 puddles ALL=(root) !/bin/sh,ALL
452
453 # LDAP equivalent of johnny
454 # Allows all commands except shell
455 dn: cn=role1,ou=Sudoers,dc=my-domain,dc=com
456 objectClass: sudoRole
457 objectClass: top
458 cn: role1
459 sudoUser: johnny
460 sudoHost: ALL
461 sudoCommand: ALL
462 sudoCommand: !/bin/sh
463
464 # LDAP equivalent of puddles
465 # Notice that even though ALL comes last, it still behaves like
466 # role1 since the LDAP code assumes the more paranoid configuration
467 dn: cn=role2,ou=Sudoers,dc=my-domain,dc=com
468 objectClass: sudoRole
469 objectClass: top
470 cn: role2
471 sudoUser: puddles
472 sudoHost: ALL
473 sudoCommand: !/bin/sh
474 sudoCommand: ALL
475 .RE
476 .fi
477 .PP
478 Another difference is that negations on the Host, User or Runas are
479 currently ignored.
480 For example, the following attributes do not behave the way one might expect.
481 .nf
482 .sp
483 .RS 4n
484 # does not match all but joe
485 # rather, does not match anyone
486 sudoUser: !joe
487
488 # does not match all but joe
489 # rather, matches everyone including Joe
490 sudoUser: ALL
491 sudoUser: !joe
492
493 # does not match all but web01
494 # rather, matches all hosts including web01
495 sudoHost: ALL
496 sudoHost: !web01
497 .RE
498 .fi
499 .SS "Sudoers schema"
500 In order to use
501 \fBsudo\fR's
502 LDAP support, the
503 \fBsudo\fR
504 schema must be
505 installed on your LDAP server.
506 In addition, be sure to index the
507 \fRsudoUser\fR
508 attribute.
509 .PP
510 Three versions of the schema: one for OpenLDAP servers
511 (\fIschema.OpenLDAP\fR),
512 one for Netscape-derived servers
513 (\fIschema.iPlanet\fR),
514 and one for Microsoft Active Directory
515 (\fIschema.ActiveDirectory\fR)
516 may be found in the
517 \fBsudo\fR
518 distribution.
519 .PP
520 The schema for
521 \fBsudo\fR
522 in OpenLDAP form is also included in the
523 \fIEXAMPLES\fR
524 section.
525 .SS "Configuring ldap.conf"
526 Sudo reads the
527 \fI/etc/ldap.conf\fR
528 file for LDAP-specific configuration.
529 Typically, this file is shared between different LDAP-aware clients.
530 As such, most of the settings are not
531 \fBsudo\fR-specific.
532 Note that
533 \fBsudo\fR
534 parses
535 \fI/etc/ldap.conf\fR
536 itself and may support options that differ from those described in the
537 system's
538 ldap.conf(5)
539 manual.
540 The path to
541 \fIldap.conf\fR
542 may be overridden via the
543 \fIldap_conf\fR
544 plugin argument in
545 sudo.conf(5).
546 .PP
547 Also note that on systems using the OpenLDAP libraries, default
548 values specified in
549 \fI/etc/openldap/ldap.conf\fR
550 or the user's
551 \fI.ldaprc\fR
552 files are not used.
553 .PP
554 Only those options explicitly listed in
555 \fI/etc/ldap.conf\fR
556 as being supported by
557 \fBsudo\fR
558 are honored.
559 Configuration options are listed below in upper case but are parsed
560 in a case-independent manner.
561 .PP
562 The pound sign
563 (\(oq#\(cq)
564 is used to indicate a comment.
565 Both the comment character and any text after it, up to the end of
566 the line, are ignored.
567 Long lines can be continued with a backslash
568 (\(oq\e\(cq)
569 as the last character on the line.
570 Note that leading white space is removed from the beginning of lines
571 even when the continuation character is used.
572 .TP 6n
573 \fBBIND_TIMELIMIT\fR \fIseconds\fR
574 The
575 \fBBIND_TIMELIMIT\fR
576 parameter specifies the amount of time, in seconds, to wait while trying
577 to connect to an LDAP server.
578 If multiple
579 \fBURI\fRs
580 or
581 \fBHOST\fRs
582 are specified, this is the amount of time to wait before trying
583 the next one in the list.
584 .TP 6n
585 \fBBINDDN\fR \fIDN\fR
586 The
587 \fBBINDDN\fR
588 parameter specifies the identity, in the form of a Distinguished Name (DN),
589 to use when performing LDAP operations.
590 If not specified, LDAP operations are performed with an anonymous identity.
591 By default, most LDAP servers will allow anonymous access.
592 .TP 6n
593 \fBBINDPW\fR \fIsecret\fR
594 The
595 \fBBINDPW\fR
596 parameter specifies the password to use when performing LDAP operations.
597 This is typically used in conjunction with the
598 \fBBINDDN\fR
599 parameter.
600 The
601 \fIsecret\fR
602 may be a plain text password or a base64-encoded string with a
603 \(Lqbase64:\(Rq
604 prefix.
605 For example:
606 .nf
607 .sp
608 .RS 10n
609 BINDPW base64:dGVzdA==
610 .RE
611 .fi
612 .RS 6n
613 .sp
614 If a plain text password is used, it should be a simple string without quotes.
615 Plain text passwords may not include the comment character
616 (\(oq#\(cq)
617 and the escaping of special characters with a backslash
618 (\(oq\e\(cq)
619 is not supported.
620 .RE
621 .TP 6n
622 \fBDEREF\fR \fInever/searching/finding/always\fR
623 How alias dereferencing is to be performed when searching.
624 See the
625 ldap.conf(5)
626 manual for a full description of this option.
627 .TP 6n
628 \fBHOST\fR \fIname[:port] ...\fR
629 If no
630 \fBURI\fR
631 is specified (see below), the
632 \fBHOST\fR
633 parameter specifies a white space-delimited list of LDAP servers to connect to.
634 Each host may include an optional
635 \fIport\fR
636 separated by a colon
637 (\(oq:\&\(cq).
638 The
639 \fBHOST\fR
640 parameter is deprecated in favor of the
641 \fBURI\fR
642 specification and is included for backwards compatibility only.
643 .TP 6n
644 \fBKRB5_CCNAME\fR \fIfile name\fR
645 The path to the Kerberos 5 credential cache to use when authenticating
646 with the remote server.
647 This option is only relevant when using SASL authentication (see below).
648 .TP 6n
649 \fBLDAP_VERSION\fR \fInumber\fR
650 The version of the LDAP protocol to use when connecting to the server.
651 The default value is protocol version 3.
652 .TP 6n
653 \fBNETGROUP_BASE\fR \fIbase\fR
654 The base DN to use when performing LDAP netgroup queries.
655 Typically this is of the form
656 \fRou=netgroup,dc=example,dc=com\fR
657 for the domain
658 \fRexample.com\fR.
659 Multiple
660 \fBNETGROUP_BASE\fR
661 lines may be specified, in which case they are queried in the order specified.
662 .sp
663 This option can be used to query a user's netgroups directly via LDAP
664 which is usually faster than fetching every
665 \fRsudoRole\fR
666 object containing a
667 \fRsudoUser\fR
668 that begins with a
669 \(oq+\(cq
670 prefix.
671 The NIS schema used by some LDAP servers need a modificaton to
672 support querying the
673 \fRnisNetgroup\fR
674 object by its
675 \fRnisNetgroupTriple\fR
676 member.
677 OpenLDAP's
678 \fBslapd\fR
679 requires the following change to the
680 \fRnisNetgroupTriple\fR
681 attribute:
682 .nf
683 .sp
684 .RS 10n
685 attributetype ( 1.3.6.1.1.1.1.14 NAME 'nisNetgroupTriple'
686     DESC 'Netgroup triple'
687     EQUALITY caseIgnoreIA5Match
688     SUBSTR caseIgnoreIA5SubstringsMatch
689     SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
690 .RE
691 .fi
692 .TP 6n
693 \fBNETGROUP_SEARCH_FILTER\fR \fIldap_filter\fR
694 An LDAP filter which is used to restrict the set of records returned
695 when performing an LDAP netgroup query.
696 Typically, this is of the
697 form
698 \fRattribute=value\fR
699 or
700 \fR(&(attribute=value)(attribute2=value2))\fR.
701 The default search filter is:
702 \fRobjectClass=nisNetgroup\fR.
703 If
704 \fIldap_filter\fR
705 is omitted, no search filter will be used.
706 This option is only when querying netgroups directly via LDAP.
707 .TP 6n
708 \fBNETWORK_TIMEOUT\fR \fIseconds\fR
709 An alias for
710 \fBBIND_TIMELIMIT\fR
711 provided for OpenLDAP compatibility.
712 .TP 6n
713 \fBPORT\fR \fIport_number\fR
714 If no
715 \fBURI\fR
716 is specified, the
717 \fBPORT\fR
718 parameter specifies the default port to connect to on the LDAP server if a
719 \fBHOST\fR
720 parameter does not specify the port itself.
721 If no
722 \fBPORT\fR
723 parameter is used, the default is port 389 for LDAP and port 636 for LDAP
724 over TLS (SSL).
725 The
726 \fBPORT\fR
727 parameter is deprecated in favor of the
728 \fBURI\fR
729 specification and is included for backwards compatibility only.
730 .TP 6n
731 \fBROOTBINDDN\fR \fIDN\fR
732 The
733 \fBROOTBINDDN\fR
734 parameter specifies the identity, in the form of a Distinguished Name (DN),
735 to use when performing privileged LDAP operations, such as
736 \fIsudoers\fR
737 queries.
738 The password corresponding to the identity should be stored in the
739 or the path specified by the
740 \fIldap_secret\fR
741 plugin argument in
742 sudo.conf(5),
743 which defaults to
744 \fI/etc/ldap.secret\fR.
745 If no
746 \fBROOTBINDDN\fR
747 is specified, the
748 \fBBINDDN\fR
749 identity is used (if any).
750 .TP 6n
751 \fBROOTUSE_SASL\fR \fIon/true/yes/off/false/no\fR
752 Enable
753 \fBROOTUSE_SASL\fR
754 to enable SASL authentication when connecting
755 to an LDAP server from a privileged process, such as
756 \fBsudo\fR.
757 .TP 6n
758 \fBSASL_AUTH_ID\fR \fIidentity\fR
759 The SASL user name to use when connecting to the LDAP server.
760 By default,
761 \fBsudo\fR
762 will use an anonymous connection.
763 This option is only relevant when using SASL authentication.
764 .TP 6n
765 \fBSASL_SECPROPS\fR \fInone/properties\fR
766 SASL security properties or
767 \fInone\fR
768 for no properties.
769 See the SASL programmer's manual for details.
770 This option is only relevant when using SASL authentication.
771 .TP 6n
772 \fBSSL\fR \fIon/true/yes/off/false/no\fR
773 If the
774 \fBSSL\fR
775 parameter is set to
776 \fRon\fR,
777 \fRtrue\fR
778 \fRor\fR
779 \fRyes\fR,
780 TLS (SSL) encryption is always used when communicating with the LDAP server.
781 Typically, this involves connecting to the server on port 636 (ldaps).
782 .TP 6n
783 \fBSSL\fR \fIstart_tls\fR
784 If the
785 \fBSSL\fR
786 parameter is set to
787 \fRstart_tls\fR,
788 the LDAP server connection is initiated normally and TLS encryption is
789 begun before the bind credentials are sent.
790 This has the advantage of not requiring a dedicated port for encrypted
791 communications.
792 This parameter is only supported by LDAP servers that honor the
793 \fIstart_tls\fR
794 extension, such as the OpenLDAP and Tivoli Directory servers.
795 .TP 6n
796 \fBSUDOERS_BASE\fR \fIbase\fR
797 The base DN to use when performing
798 \fBsudo\fR
799 LDAP queries.
800 Typically this is of the form
801 \fRou=SUDOers,dc=example,dc=com\fR
802 for the domain
803 \fRexample.com\fR.
804 Multiple
805 \fBSUDOERS_BASE\fR
806 lines may be specified, in which case they are queried in the order specified.
807 .TP 6n
808 \fBSUDOERS_DEBUG\fR \fIdebug_level\fR
809 This sets the debug level for
810 \fBsudo\fR
811 LDAP queries.
812 Debugging information is printed to the standard error.
813 A value of 1 results in a moderate amount of debugging information.
814 A value of 2 shows the results of the matches themselves.
815 This parameter should not be set in a production environment as the
816 extra information is likely to confuse users.
817 .sp
818 The
819 \fBSUDOERS_DEBUG\fR
820 parameter is deprecated and will be removed in a future release.
821 The same information is now logged via the
822 \fBsudo\fR
823 debugging framework using the
824 \(Lqldap\(Rq
825 subsystem at priorities
826 \fIdiag\fR
827 and
828 \fIinfo\fR
829 for
830 \fIdebug_level\fR
831 values 1 and 2 respectively.
832 See the
833 sudo.conf(5)
834 manual for details on how to configure
835 \fBsudo\fR
836 debugging.
837 .TP 6n
838 \fBSUDOERS_SEARCH_FILTER\fR \fIldap_filter\fR
839 An LDAP filter which is used to restrict the set of records returned
840 when performing a
841 \fBsudo\fR
842 LDAP query.
843 Typically, this is of the
844 form
845 \fRattribute=value\fR
846 or
847 \fR(&(attribute=value)(attribute2=value2))\fR.
848 The default search filter is:
849 \fRobjectClass=sudoRole\fR.
850 If
851 \fIldap_filter\fR
852 is omitted, no search filter will be used.
853 .TP 6n
854 \fBSUDOERS_TIMED\fR \fIon/true/yes/off/false/no\fR
855 Whether or not to evaluate the
856 \fRsudoNotBefore\fR
857 and
858 \fRsudoNotAfter\fR
859 attributes that implement time-dependent sudoers entries.
860 .TP 6n
861 \fBTIMELIMIT\fR \fIseconds\fR
862 The
863 \fBTIMELIMIT\fR
864 parameter specifies the amount of time, in seconds, to wait for a
865 response to an LDAP query.
866 .TP 6n
867 \fBTIMEOUT\fR \fIseconds\fR
868 The
869 \fBTIMEOUT\fR
870 parameter specifies the amount of time, in seconds, to wait for a
871 response from the various LDAP APIs.
872 .TP 6n
873 \fBTLS_CACERT\fR \fIfile name\fR
874 An alias for
875 \fBTLS_CACERTFILE\fR
876 for OpenLDAP compatibility.
877 .TP 6n
878 \fBTLS_CACERTFILE\fR \fIfile name\fR
879 The path to a certificate authority bundle which contains the certificates
880 for all the Certificate Authorities the client knows to be valid, e.g.\&
881 \fI/etc/ssl/ca-bundle.pem\fR.
882 This option is only supported by the OpenLDAP libraries.
883 Netscape-derived LDAP libraries use the same certificate
884 database for CA and client certificates (see
885 \fBTLS_CERT\fR).
886 .TP 6n
887 \fBTLS_CACERTDIR\fR \fIdirectory\fR
888 Similar to
889 \fBTLS_CACERTFILE\fR
890 but instead of a file, it is a directory containing individual
891 Certificate Authority certificates, e.g.\&
892 \fI/etc/ssl/certs\fR.
893 The directory specified by
894 \fBTLS_CACERTDIR\fR
895 is checked after
896 \fBTLS_CACERTFILE\fR.
897 This option is only supported by the OpenLDAP libraries.
898 .TP 6n
899 \fBTLS_CERT\fR \fIfile name\fR
900 The path to a file containing the client certificate which can
901 be used to authenticate the client to the LDAP server.
902 The certificate type depends on the LDAP libraries used.
903 .PP
904 .RS 6n
905 .PD 0
906 .TP 6n
907 OpenLDAP:
908 \fRtls_cert /etc/ssl/client_cert.pem\fR
909 .PD
910 .TP 6n
911 Netscape-derived:
912 \fRtls_cert /var/ldap/cert7.db\fR
913 .TP 6n
914 Tivoli Directory Server:
915 Unused, the key database specified by
916 \fBTLS_KEY\fR
917 contains both keys and certificates.
918 .sp
919 When using Netscape-derived libraries, this file may also contain
920 Certificate Authority certificates.
921 .PD 0
922 .PP
923 .RE
924 .PD
925 .TP 6n
926 \fBTLS_CHECKPEER\fR \fIon/true/yes/off/false/no\fR
927 If enabled,
928 \fBTLS_CHECKPEER\fR
929 will cause the LDAP server's TLS certificated to be verified.
930 If the server's TLS certificate cannot be verified (usually because it
931 is signed by an unknown certificate authority),
932 \fBsudo\fR
933 will be unable to connect to it.
934 If
935 \fBTLS_CHECKPEER\fR
936 is disabled, no check is made.
937 Note that disabling the check creates an opportunity for man-in-the-middle
938 attacks since the server's identity will not be authenticated.
939 If possible, the CA's certificate should be installed locally so it can
940 be verified.
941 This option is not supported by the Tivoli Directory Server LDAP libraries.
942 .TP 6n
943 \fBTLS_KEY\fR \fIfile name\fR
944 The path to a file containing the private key which matches the
945 certificate specified by
946 \fBTLS_CERT\fR.
947 The private key must not be password-protected.
948 The key type depends on the LDAP libraries used.
949 .PP
950 .RS 6n
951 .PD 0
952 .TP 6n
953 OpenLDAP:
954 \fRtls_key /etc/ssl/client_key.pem\fR
955 .PD
956 .TP 6n
957 Netscape-derived:
958 \fRtls_key /var/ldap/key3.db\fR
959 .TP 6n
960 Tivoli Directory Server:
961 \fRtls_key /usr/ldap/ldapkey.kdb\fR
962 .PD 0
963 .PP
964 When using Tivoli LDAP libraries, this file may also contain
965 Certificate Authority and client certificates and may be encrypted.
966 .RE
967 .PD
968 .TP 6n
969 \fBTLS_CIPHERS\fR \fIcipher list\fR
970 The
971 \fBTLS_CIPHERS\fR
972 parameter allows the administer to restrict which encryption algorithms
973 may be used for TLS (SSL) connections.
974 See the OpenLDAP or Tivoli Directory Server manual for a list of valid
975 ciphers.
976 This option is not supported by Netscape-derived libraries.
977 .TP 6n
978 \fBTLS_KEYPW\fR \fIsecret\fR
979 The
980 \fBTLS_KEYPW\fR
981 contains the password used to decrypt the key database on clients
982 using the Tivoli Directory Server LDAP library.
983 The
984 \fIsecret\fR
985 may be a plain text password or a base64-encoded string with a
986 \(Lqbase64:\(Rq
987 prefix.
988 For example:
989 .nf
990 .sp
991 .RS 10n
992 TLS_KEYPW base64:dGVzdA==
993 .RE
994 .fi
995 .RS 6n
996 .sp
997 If a plain text password is used, it should be a simple string without quotes.
998 Plain text passwords may not include the comment character
999 (\(oq#\(cq)
1000 and the escaping of special characters with a backslash
1001 (\(oq\e\(cq)
1002 is not supported.
1003 If this option is used,
1004 \fI/etc/ldap.conf\fR
1005 must not be world-readable to avoid exposing the password.
1006 Alternately, a
1007 \fIstash file\fR
1008 can be used to store the password in encrypted form (see below).
1009 .sp
1010 If no
1011 \fBTLS_KEYPW\fR
1012 is specified, a
1013 \fIstash file\fR
1014 will be used if it exists.
1015 The
1016 \fIstash file\fR
1017 must have the same path as the file specified by
1018 \fBTLS_KEY\fR,
1019 but use a
1020 \fR.sth\fR
1021 file extension instead of
1022 \fR.kdb\fR,
1023 e.g.\&
1024 \fRldapkey.sth\fR.
1025 The default
1026 \fRldapkey.kdb\fR
1027 that ships with Tivoli Directory Server is encrypted with the password
1028 \fRssl_password\fR.
1029 The
1030 \fIgsk8capicmd\fR
1031 utility can be used to manage the key database and create a
1032 \fIstash file\fR.
1033 This option is only supported by the Tivoli LDAP libraries.
1034 .RE
1035 .TP 6n
1036 \fBTLS_RANDFILE\fR \fIfile name\fR
1037 The
1038 \fBTLS_RANDFILE\fR
1039 parameter specifies the path to an entropy source for systems that lack
1040 a random device.
1041 It is generally used in conjunction with
1042 \fIprngd\fR
1043 or
1044 \fIegd\fR.
1045 This option is only supported by the OpenLDAP libraries.
1046 .TP 6n
1047 \fBURI\fR \fIldap[s]://[hostname[:port]] ...\fR
1048 Specifies a white space-delimited list of one or more URIs describing
1049 the LDAP server(s) to connect to.
1050 The
1051 \fIprotocol\fR
1052 may be either
1053 \fIldap\fR
1054 \fIldaps\fR,
1055 the latter being for servers that support TLS (SSL) encryption.
1056 If no
1057 \fIport\fR
1058 is specified, the default is port 389 for
1059 \fRldap://\fR
1060 or port 636 for
1061 \fRldaps://\fR.
1062 If no
1063 \fIhostname\fR
1064 is specified,
1065 \fBsudo\fR
1066 will connect to
1067 \fIlocalhost\fR.
1068 Multiple
1069 \fBURI\fR
1070 lines are treated identically to a
1071 \fBURI\fR
1072 line containing multiple entries.
1073 Only systems using the OpenSSL libraries support the mixing of
1074 \fRldap://\fR
1075 and
1076 \fRldaps://\fR
1077 URIs.
1078 Both the Netscape-derived and Tivoli LDAP libraries used on most commercial
1079 versions of Unix are only capable of supporting one or the other.
1080 .TP 6n
1081 \fBUSE_SASL\fR \fIon/true/yes/off/false/no\fR
1082 Enable
1083 \fBUSE_SASL\fR
1084 for LDAP servers that support SASL authentication.
1085 .TP 6n
1086 \fBROOTSASL_AUTH_ID\fR \fIidentity\fR
1087 The SASL user name to use when
1088 \fBROOTUSE_SASL\fR
1089 is enabled.
1090 .PP
1091 See the
1092 \fIldap.conf\fR
1093 entry in the
1094 \fIEXAMPLES\fR
1095 section.
1096 .SS "Configuring nsswitch.conf"
1097 Unless it is disabled at build time,
1098 \fBsudo\fR
1099 consults the Name Service Switch file,
1100 \fI/etc/nsswitch.conf\fR,
1101 to specify the
1102 \fIsudoers\fR
1103 search order.
1104 Sudo looks for a line beginning with
1105 \fRsudoers\fR:
1106 and uses this to determine the search order.
1107 Note that
1108 \fBsudo\fR
1109 does
1110 not stop searching after the first match and later matches take
1111 precedence over earlier ones.
1112 The following sources are recognized:
1113 .PP
1114 .RS 4n
1115 .PD 0
1116 .TP 10n
1117 files
1118 read sudoers from
1119 \fI/etc/sudoers\fR
1120 .TP 10n
1121 ldap
1122 read sudoers from LDAP
1123 .RE
1124 .PD
1125 .PP
1126 In addition, the entry
1127 \fR[NOTFOUND=return]\fR
1128 will short-circuit the search if the user was not found in the
1129 preceding source.
1130 .PP
1131 To consult LDAP first followed by the local sudoers file (if it
1132 exists), use:
1133 .nf
1134 .sp
1135 .RS 4n
1136 sudoers: ldap files
1137 .RE
1138 .fi
1139 .PP
1140 The local
1141 \fIsudoers\fR
1142 file can be ignored completely by using:
1143 .nf
1144 .sp
1145 .RS 4n
1146 sudoers: ldap
1147 .RE
1148 .fi
1149 .PP
1150 If the
1151 \fI/etc/nsswitch.conf\fR
1152 file is not present or there is no sudoers line, the following
1153 default is assumed:
1154 .nf
1155 .sp
1156 .RS 4n
1157 sudoers: files
1158 .RE
1159 .fi
1160 .PP
1161 Note that
1162 \fI/etc/nsswitch.conf\fR
1163 is supported even when the underlying operating system does not use
1164 an nsswitch.conf file, except on AIX (see below).
1165 .SS "Configuring netsvc.conf"
1166 On AIX systems, the
1167 \fI/etc/netsvc.conf\fR
1168 file is consulted instead of
1169 \fI/etc/nsswitch.conf\fR.
1170 \fBsudo\fR
1171 simply treats
1172 \fInetsvc.conf\fR
1173 as a variant of
1174 \fInsswitch.conf\fR;
1175 information in the previous section unrelated to the file format
1176 itself still applies.
1177 .PP
1178 To consult LDAP first followed by the local sudoers file (if it
1179 exists), use:
1180 .nf
1181 .sp
1182 .RS 4n
1183 sudoers = ldap, files
1184 .RE
1185 .fi
1186 .PP
1187 The local
1188 \fIsudoers\fR
1189 file can be ignored completely by using:
1190 .nf
1191 .sp
1192 .RS 4n
1193 sudoers = ldap
1194 .RE
1195 .fi
1196 .PP
1197 To treat LDAP as authoritative and only use the local sudoers file
1198 if the user is not present in LDAP, use:
1199 .nf
1200 .sp
1201 .RS 4n
1202 sudoers = ldap = auth, files
1203 .RE
1204 .fi
1205 .PP
1206 Note that in the above example, the
1207 \fRauth\fR
1208 qualifier only affects user lookups; both LDAP and
1209 \fIsudoers\fR
1210 will be queried for
1211 \fRDefaults\fR
1212 entries.
1213 .PP
1214 If the
1215 \fI/etc/netsvc.conf\fR
1216 file is not present or there is no sudoers line, the following
1217 default is assumed:
1218 .nf
1219 .sp
1220 .RS 4n
1221 sudoers = files
1222 .RE
1223 .fi
1224 .SS "Integration with sssd"
1225 On systems with the
1226 \fISystem Security Services Daemon\fR
1227 (SSSD) and where
1228 \fBsudo\fR
1229 has been built with SSSD support,
1230 it is possible to use SSSD to cache LDAP
1231 \fIsudoers\fR
1232 rules.
1233 To use SSSD as the
1234 \fIsudoers\fR
1235 source, you should use
1236 \fRsssd\fR
1237 instead of
1238 \fRldap\fR
1239 for the sudoers entry in
1240 \fI/etc/nsswitch.conf\fR.
1241 Note that the
1242 \fI/etc/ldap.conf\fR
1243 file is not used by the SSSD
1244 \fBsudo\fR
1245 back end.
1246 Please see
1247 sssd-sudo(5)
1248 for more information on configuring
1249 \fBsudo\fR
1250 to work with SSSD.
1251 .SH "FILES"
1252 .TP 26n
1253 \fI/etc/ldap.conf\fR
1254 LDAP configuration file
1255 .TP 26n
1256 \fI/etc/nsswitch.conf\fR
1257 determines sudoers source order
1258 .TP 26n
1259 \fI/etc/netsvc.conf\fR
1260 determines sudoers source order on AIX
1261 .SH "EXAMPLES"
1262 .SS "Example ldap.conf"
1263 .nf
1264 .RS 2n
1265 # Either specify one or more URIs or one or more host:port pairs.
1266 # If neither is specified sudo will default to localhost, port 389.
1267 #
1268 #host          ldapserver
1269 #host          ldapserver1 ldapserver2:390
1270 #
1271 # Default port if host is specified without one, defaults to 389.
1272 #port          389
1273 #
1274 # URI will override the host and port settings.
1275 uri            ldap://ldapserver
1276 #uri            ldaps://secureldapserver
1277 #uri            ldaps://secureldapserver ldap://ldapserver
1278 #
1279 # The amount of time, in seconds, to wait while trying to connect to
1280 # an LDAP server.
1281 bind_timelimit 30
1282 #
1283 # The amount of time, in seconds, to wait while performing an LDAP query.
1284 timelimit 30
1285 #
1286 # Must be set or sudo will ignore LDAP; may be specified multiple times.
1287 sudoers_base   ou=SUDOers,dc=example,dc=com
1288 #
1289 # verbose sudoers matching from ldap
1290 #sudoers_debug 2
1291 #
1292 # Enable support for time-based entries in sudoers.
1293 #sudoers_timed yes
1294 #
1295 # optional proxy credentials
1296 #binddn        <who to search as>
1297 #bindpw        <password>
1298 #rootbinddn    <who to search as, uses /etc/ldap.secret for bindpw>
1299 #
1300 # LDAP protocol version, defaults to 3
1301 #ldap_version 3
1302 #
1303 # Define if you want to use an encrypted LDAP connection.
1304 # Typically, you must also set the port to 636 (ldaps).
1305 #ssl on
1306 #
1307 # Define if you want to use port 389 and switch to
1308 # encryption before the bind credentials are sent.
1309 # Only supported by LDAP servers that support the start_tls
1310 # extension such as OpenLDAP.
1311 #ssl start_tls
1312 #
1313 # Additional TLS options follow that allow tweaking of the
1314 # SSL/TLS connection.
1315 #
1316 #tls_checkpeer yes # verify server SSL certificate
1317 #tls_checkpeer no  # ignore server SSL certificate
1318 #
1319 # If you enable tls_checkpeer, specify either tls_cacertfile
1320 # or tls_cacertdir.  Only supported when using OpenLDAP.
1321 #
1322 #tls_cacertfile /etc/certs/trusted_signers.pem
1323 #tls_cacertdir  /etc/certs
1324 #
1325 # For systems that don't have /dev/random
1326 # use this along with PRNGD or EGD.pl to seed the
1327 # random number pool to generate cryptographic session keys.
1328 # Only supported when using OpenLDAP.
1329 #
1330 #tls_randfile /etc/egd-pool
1331 #
1332 # You may restrict which ciphers are used.  Consult your SSL
1333 # documentation for which options go here.
1334 # Only supported when using OpenLDAP.
1335 #
1336 #tls_ciphers <cipher-list>
1337 #
1338 # Sudo can provide a client certificate when communicating to
1339 # the LDAP server.
1340 # Tips:
1341 #   * Enable both lines at the same time.
1342 #   * Do not password protect the key file.
1343 #   * Ensure the keyfile is only readable by root.
1344 #
1345 # For OpenLDAP:
1346 #tls_cert /etc/certs/client_cert.pem
1347 #tls_key  /etc/certs/client_key.pem
1348 #
1349 # For SunONE or iPlanet LDAP, tls_cert and tls_key may specify either
1350 # a directory, in which case the files in the directory must have the
1351 # default names (e.g. cert8.db and key4.db), or the path to the cert
1352 # and key files themselves.  However, a bug in version 5.0 of the LDAP
1353 # SDK will prevent specific file names from working.  For this reason
1354 # it is suggested that tls_cert and tls_key be set to a directory,
1355 # not a file name.
1356 #
1357 # The certificate database specified by tls_cert may contain CA certs
1358 # and/or the client's cert.  If the client's cert is included, tls_key
1359 # should be specified as well.
1360 # For backward compatibility, "sslpath" may be used in place of tls_cert.
1361 #tls_cert /var/ldap
1362 #tls_key /var/ldap
1363 #
1364 # If using SASL authentication for LDAP (OpenSSL)
1365 # use_sasl yes
1366 # sasl_auth_id <SASL user name>
1367 # rootuse_sasl yes
1368 # rootsasl_auth_id <SASL user name for root access>
1369 # sasl_secprops none
1370 # krb5_ccname /etc/.ldapcache
1371 .RE
1372 .fi
1373 .SS "Sudo schema for OpenLDAP"
1374 The following schema, in OpenLDAP format, is included with
1375 \fBsudo\fR
1376 source and binary distributions as
1377 \fIschema.OpenLDAP\fR.
1378 Simply copy
1379 it to the schema directory (e.g.\&
1380 \fI/etc/openldap/schema\fR),
1381 add the proper
1382 \fRinclude\fR
1383 line in
1384 \fIslapd.conf\fR
1385 and restart
1386 \fBslapd\fR.
1387 .nf
1388 .sp
1389 .RS 2n
1390 attributetype ( 1.3.6.1.4.1.15953.9.1.1
1391    NAME 'sudoUser'
1392    DESC 'User(s) who may  run sudo'
1393    EQUALITY caseExactIA5Match
1394    SUBSTR caseExactIA5SubstringsMatch
1395    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1396
1397 attributetype ( 1.3.6.1.4.1.15953.9.1.2
1398    NAME 'sudoHost'
1399    DESC 'Host(s) who may run sudo'
1400    EQUALITY caseExactIA5Match
1401    SUBSTR caseExactIA5SubstringsMatch
1402    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1403
1404 attributetype ( 1.3.6.1.4.1.15953.9.1.3
1405    NAME 'sudoCommand'
1406    DESC 'Command(s) to be executed by sudo'
1407    EQUALITY caseExactIA5Match
1408    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1409
1410 attributetype ( 1.3.6.1.4.1.15953.9.1.4
1411    NAME 'sudoRunAs'
1412    DESC 'User(s) impersonated by sudo'
1413    EQUALITY caseExactIA5Match
1414    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1415
1416 attributetype ( 1.3.6.1.4.1.15953.9.1.5
1417    NAME 'sudoOption'
1418    DESC 'Options(s) followed by sudo'
1419    EQUALITY caseExactIA5Match
1420    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1421
1422 attributetype ( 1.3.6.1.4.1.15953.9.1.6
1423    NAME 'sudoRunAsUser'
1424    DESC 'User(s) impersonated by sudo'
1425    EQUALITY caseExactIA5Match
1426    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1427
1428 attributetype ( 1.3.6.1.4.1.15953.9.1.7
1429    NAME 'sudoRunAsGroup'
1430    DESC 'Group(s) impersonated by sudo'
1431    EQUALITY caseExactIA5Match
1432    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1433
1434 attributetype ( 1.3.6.1.4.1.15953.9.1.8
1435    NAME 'sudoNotBefore'
1436    DESC 'Start of time interval for which the entry is valid'
1437    EQUALITY generalizedTimeMatch
1438    ORDERING generalizedTimeOrderingMatch
1439    SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
1440
1441 attributetype ( 1.3.6.1.4.1.15953.9.1.9
1442    NAME 'sudoNotAfter'
1443    DESC 'End of time interval for which the entry is valid'
1444    EQUALITY generalizedTimeMatch
1445    ORDERING generalizedTimeOrderingMatch
1446    SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
1447
1448 attributeTypes ( 1.3.6.1.4.1.15953.9.1.10
1449     NAME 'sudoOrder'
1450     DESC 'an integer to order the sudoRole entries'
1451     EQUALITY integerMatch
1452     ORDERING integerOrderingMatch
1453     SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
1454
1455 objectclass ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' SUP top STRUCTURAL
1456    DESC 'Sudoer Entries'
1457    MUST ( cn )
1458    MAY ( sudoUser $ sudoHost $ sudoCommand $ sudoRunAs $ sudoRunAsUser $
1459          sudoRunAsGroup $ sudoOption $ sudoNotBefore $ sudoNotAfter $
1460          sudoOrder $ description )
1461    )
1462 .RE
1463 .fi
1464 .SH "SEE ALSO"
1465 ldap.conf(5),
1466 sssd-sudo(5),
1467 sudo.conf(5),
1468 sudoers(5)
1469 .SH "AUTHORS"
1470 Many people have worked on
1471 \fBsudo\fR
1472 over the years; this version consists of code written primarily by:
1473 .sp
1474 .RS 6n
1475 Todd C. Miller
1476 .RE
1477 .PP
1478 See the CONTRIBUTORS file in the
1479 \fBsudo\fR
1480 distribution (https://www.sudo.ws/contributors.html) for an
1481 exhaustive list of people who have contributed to
1482 \fBsudo\fR.
1483 .SH "CAVEATS"
1484 Note that there are differences in the way that LDAP-based
1485 \fIsudoers\fR
1486 is parsed compared to file-based
1487 \fIsudoers\fR.
1488 See the
1489 \fIDifferences between LDAP and non-LDAP sudoers\fR
1490 section for more information.
1491 .SH "BUGS"
1492 If you feel you have found a bug in
1493 \fBsudo\fR,
1494 please submit a bug report at https://bugzilla.sudo.ws/
1495 .SH "SUPPORT"
1496 Limited free support is available via the sudo-users mailing list,
1497 see https://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or
1498 search the archives.
1499 .SH "DISCLAIMER"
1500 \fBsudo\fR
1501 is provided
1502 \(LqAS IS\(Rq
1503 and any express or implied warranties, including, but not limited
1504 to, the implied warranties of merchantability and fitness for a
1505 particular purpose are disclaimed.
1506 See the LICENSE file distributed with
1507 \fBsudo\fR
1508 or https://www.sudo.ws/license.html for complete details.