Annotation of embedaddon/sudo/doc/sudoers.ldap.cat, revision 1.1.1.6

1.1.1.3   misho       1: SUDOERS.LDAP(1m)             System Manager's Manual            SUDOERS.LDAP(1m)
1.1       misho       2: 
                      3: NNAAMMEE
1.1.1.3   misho       4:      ssuuddooeerrss..llddaapp - sudo LDAP configuration
1.1       misho       5: 
                      6: DDEESSCCRRIIPPTTIIOONN
1.1.1.3   misho       7:      In addition to the standard _s_u_d_o_e_r_s file, ssuuddoo may be configured via
                      8:      LDAP.  This can be especially useful for synchronizing _s_u_d_o_e_r_s in a
                      9:      large, distributed environment.
                     10: 
                     11:      Using LDAP for _s_u_d_o_e_r_s has several benefits:
                     12: 
                     13:      oo   ssuuddoo no longer needs to read _s_u_d_o_e_r_s in its entirety.  When LDAP is
                     14:          used, there are only two or three LDAP queries per invocation.  This
                     15:          makes it especially fast and particularly usable in LDAP
                     16:          environments.
                     17: 
                     18:      oo   ssuuddoo no longer exits if there is a typo in _s_u_d_o_e_r_s.  It is not
                     19:          possible to load LDAP data into the server that does not conform to
                     20:          the sudoers schema, so proper syntax is guaranteed.  It is still
                     21:          possible to have typos in a user or host name, but this will not
                     22:          prevent ssuuddoo from running.
                     23: 
                     24:      oo   It is possible to specify per-entry options that override the global
                     25:          default options.  _/_e_t_c_/_s_u_d_o_e_r_s only supports default options and
                     26:          limited options associated with user/host/commands/aliases.  The
                     27:          syntax is complicated and can be difficult for users to understand.
                     28:          Placing the options directly in the entry is more natural.
                     29: 
                     30:      oo   The vviissuuddoo program is no longer needed.  vviissuuddoo provides locking and
                     31:          syntax checking of the _/_e_t_c_/_s_u_d_o_e_r_s file.  Since LDAP updates are
                     32:          atomic, locking is no longer necessary.  Because syntax is checked
                     33:          when the data is inserted into LDAP, there is no need for a
                     34:          specialized tool to check syntax.
                     35: 
                     36:      Another major difference between LDAP and file-based _s_u_d_o_e_r_s is that in
                     37:      LDAP, ssuuddoo-specific Aliases are not supported.
                     38: 
                     39:      For the most part, there is really no need for ssuuddoo-specific Aliases.
1.1.1.4   misho      40:      Unix groups, non-Unix groups (via the _g_r_o_u_p___p_l_u_g_i_n) or user netgroups can
                     41:      be used in place of User_Aliases and Runas_Aliases.  Host netgroups can
                     42:      be used in place of Host_Aliases.  Since groups and netgroups can also be
                     43:      stored in LDAP there is no real need for ssuuddoo-specific aliases.
1.1.1.3   misho      44: 
                     45:      Cmnd_Aliases are not really required either since it is possible to have
                     46:      multiple users listed in a sudoRole.  Instead of defining a Cmnd_Alias
                     47:      that is referenced by multiple users, one can create a sudoRole that
                     48:      contains the commands and assign multiple users to it.
1.1       misho      49: 
                     50:    SSUUDDOOeerrss LLDDAAPP ccoonnttaaiinneerr
1.1.1.3   misho      51:      The _s_u_d_o_e_r_s configuration is contained in the ou=SUDOers LDAP container.
1.1       misho      52: 
1.1.1.3   misho      53:      Sudo first looks for the cn=default entry in the SUDOers container.  If
                     54:      found, the multi-valued sudoOption attribute is parsed in the same manner
                     55:      as a global Defaults line in _/_e_t_c_/_s_u_d_o_e_r_s.  In the following example, the
                     56:      SSH_AUTH_SOCK variable will be preserved in the environment for all
                     57:      users.
                     58: 
                     59:          dn: cn=defaults,ou=SUDOers,dc=example,dc=com
                     60:          objectClass: top
                     61:          objectClass: sudoRole
                     62:          cn: defaults
                     63:          description: Default sudoOption's go here
                     64:          sudoOption: env_keep+=SSH_AUTH_SOCK
                     65: 
                     66:      The equivalent of a sudoer in LDAP is a sudoRole.  It consists of the
                     67:      following attributes:
                     68: 
                     69:      ssuuddooUUsseerr
1.1.1.4   misho      70:            A user name, user ID (prefixed with `#'), Unix group name or ID
                     71:            (prefixed with `%' or `%#' respectively), user netgroup (prefixed
                     72:            with `+'), or non-Unix group name or ID (prefixed with `%:' or
                     73:            `%:#' respectively).  Non-Unix group support is only available when
                     74:            an appropriate _g_r_o_u_p___p_l_u_g_i_n is defined in the global _d_e_f_a_u_l_t_s
                     75:            sudoRole object.
1.1       misho      76: 
1.1.1.3   misho      77:      ssuuddooHHoosstt
1.1       misho      78:            A host name, IP address, IP network, or host netgroup (prefixed
1.1.1.3   misho      79:            with a `+').  The special value ALL will match any host.
1.1       misho      80: 
1.1.1.3   misho      81:      ssuuddooCCoommmmaanndd
1.1.1.4   misho      82:            A fully-qualified Unix command name with optional command line
                     83:            arguments, potentially including globbing characters (aka wild
                     84:            cards).  If a command name is preceded by an exclamation point,
                     85:            `!', the user will be prohibited from running that command.
                     86: 
                     87:            The built-in command ``sudoedit'' is used to permit a user to run
                     88:            ssuuddoo with the --ee option (or as ssuuddooeeddiitt).  It may take command line
                     89:            arguments just as a normal command does.  Note that ``sudoedit'' is
                     90:            a command built into ssuuddoo itself and must be specified in without a
                     91:            leading path.
                     92: 
                     93:            The special value ALL will match any command.
                     94: 
                     95:            If a command name is prefixed with a SHA-2 digest, it will only be
                     96:            allowed if the digest matches.  This may be useful in situations
                     97:            where the user invoking ssuuddoo has write access to the command or its
                     98:            parent directory.  The following digest formats are supported:
                     99:            sha224, sha256, sha384 and sha512.  The digest name must be
                    100:            followed by a colon (`:') and then the actual digest, in either hex
                    101:            or base64 format.  For example, given the following value for
                    102:            sudoCommand:
                    103: 
                    104:                sha224:0GomF8mNN3wlDt1HD9XldjJ3SNgpFdbjO1+NsQ /bin/ls
                    105: 
                    106:            The user may only run _/_b_i_n_/_l_s if its sha224 digest matches the
                    107:            specified value.  Command digests are only supported by version
                    108:            1.8.7 or higher.
1.1       misho     109: 
1.1.1.3   misho     110:      ssuuddooOOppttiioonn
1.1       misho     111:            Identical in function to the global options described above, but
                    112:            specific to the sudoRole in which it resides.
                    113: 
1.1.1.3   misho     114:      ssuuddooRRuunnAAssUUsseerr
                    115:            A user name or uid (prefixed with `#') that commands may be run as
                    116:            or a Unix group (prefixed with a `%') or user netgroup (prefixed
                    117:            with a `+') that contains a list of users that commands may be run
1.1       misho     118:            as.  The special value ALL will match any user.
                    119: 
                    120:            The sudoRunAsUser attribute is only available in ssuuddoo versions
                    121:            1.7.0 and higher.  Older versions of ssuuddoo use the sudoRunAs
                    122:            attribute instead.
                    123: 
1.1.1.3   misho     124:      ssuuddooRRuunnAAssGGrroouupp
                    125:            A Unix group or gid (prefixed with `#') that commands may be run
1.1       misho     126:            as.  The special value ALL will match any group.
                    127: 
                    128:            The sudoRunAsGroup attribute is only available in ssuuddoo versions
                    129:            1.7.0 and higher.
                    130: 
1.1.1.3   misho     131:      ssuuddooNNoottBBeeffoorree
1.1       misho     132:            A timestamp in the form yyyymmddHHMMSSZ that can be used to provide
                    133:            a start date/time for when the sudoRole will be valid.  If multiple
                    134:            sudoNotBefore entries are present, the earliest is used.  Note that
                    135:            timestamps must be in Coordinated Universal Time (UTC), not the
                    136:            local timezone.  The minute and seconds portions are optional, but
                    137:            some LDAP servers require that they be present (contrary to the
                    138:            RFC).
                    139: 
                    140:            The sudoNotBefore attribute is only available in ssuuddoo versions
                    141:            1.7.5 and higher and must be explicitly enabled via the
                    142:            SSUUDDOOEERRSS__TTIIMMEEDD option in _/_e_t_c_/_l_d_a_p_._c_o_n_f.
                    143: 
1.1.1.3   misho     144:      ssuuddooNNoottAAfftteerr
1.1       misho     145:            A timestamp in the form yyyymmddHHMMSSZ that indicates an
                    146:            expiration date/time, after which the sudoRole will no longer be
                    147:            valid.  If multiple sudoNotBefore entries are present, the last one
                    148:            is used.  Note that timestamps must be in Coordinated Universal
                    149:            Time (UTC), not the local timezone.  The minute and seconds
                    150:            portions are optional, but some LDAP servers require that they be
                    151:            present (contrary to the RFC).
                    152: 
                    153:            The sudoNotAfter attribute is only available in ssuuddoo versions 1.7.5
                    154:            and higher and must be explicitly enabled via the SSUUDDOOEERRSS__TTIIMMEEDD
                    155:            option in _/_e_t_c_/_l_d_a_p_._c_o_n_f.
                    156: 
1.1.1.3   misho     157:      ssuuddooOOrrddeerr
1.1       misho     158:            The sudoRole entries retrieved from the LDAP directory have no
                    159:            inherent order.  The sudoOrder attribute is an integer (or floating
                    160:            point value for LDAP servers that support it) that is used to sort
                    161:            the matching entries.  This allows LDAP-based sudoers entries to
1.1.1.4   misho     162:            more closely mimic the behavior of the sudoers file, where the of
1.1       misho     163:            the entries influences the result.  If multiple entries match, the
                    164:            entry with the highest sudoOrder attribute is chosen.  This
1.1.1.3   misho     165:            corresponds to the ``last match'' behavior of the sudoers file.  If
1.1       misho     166:            the sudoOrder attribute is not present, a value of 0 is assumed.
                    167: 
                    168:            The sudoOrder attribute is only available in ssuuddoo versions 1.7.5
                    169:            and higher.
                    170: 
1.1.1.3   misho     171:      Each attribute listed above should contain a single value, but there may
                    172:      be multiple instances of each attribute type.  A sudoRole must contain at
                    173:      least one sudoUser, sudoHost and sudoCommand.
                    174: 
                    175:      The following example allows users in group wheel to run any command on
                    176:      any host via ssuuddoo:
                    177: 
                    178:          dn: cn=%wheel,ou=SUDOers,dc=example,dc=com
                    179:          objectClass: top
                    180:          objectClass: sudoRole
                    181:          cn: %wheel
                    182:          sudoUser: %wheel
                    183:          sudoHost: ALL
                    184:          sudoCommand: ALL
1.1       misho     185: 
                    186:    AAnnaattoommyy ooff LLDDAAPP ssuuddooeerrss llooookkuupp
1.1.1.3   misho     187:      When looking up a sudoer using LDAP there are only two or three LDAP
                    188:      queries per invocation.  The first query is to parse the global options.
                    189:      The second is to match against the user's name and the groups that the
                    190:      user belongs to.  (The special ALL tag is matched in this query too.)  If
                    191:      no match is returned for the user's name and groups, a third query
                    192:      returns all entries containing user netgroups and checks to see if the
                    193:      user belongs to any of them.
                    194: 
                    195:      If timed entries are enabled with the SSUUDDOOEERRSS__TTIIMMEEDD configuration
1.1.1.4   misho     196:      directive, the LDAP queries include a sub-filter that limits retrieval to
1.1.1.3   misho     197:      entries that satisfy the time constraints, if any.
1.1       misho     198: 
                    199:    DDiiffffeerreenncceess bbeettwweeeenn LLDDAAPP aanndd nnoonn--LLDDAAPP ssuuddooeerrss
1.1.1.3   misho     200:      There are some subtle differences in the way sudoers is handled once in
                    201:      LDAP.  Probably the biggest is that according to the RFC, LDAP ordering
                    202:      is arbitrary and you cannot expect that Attributes and Entries are
                    203:      returned in any specific order.
                    204: 
                    205:      The order in which different entries are applied can be controlled using
                    206:      the sudoOrder attribute, but there is no way to guarantee the order of
                    207:      attributes within a specific entry.  If there are conflicting command
                    208:      rules in an entry, the negative takes precedence.  This is called
                    209:      paranoid behavior (not necessarily the most specific match).
                    210: 
                    211:      Here is an example:
                    212: 
                    213:          # /etc/sudoers:
                    214:          # Allow all commands except shell
                    215:          johnny  ALL=(root) ALL,!/bin/sh
                    216:          # Always allows all commands because ALL is matched last
                    217:          puddles ALL=(root) !/bin/sh,ALL
                    218: 
                    219:          # LDAP equivalent of johnny
                    220:          # Allows all commands except shell
                    221:          dn: cn=role1,ou=Sudoers,dc=my-domain,dc=com
                    222:          objectClass: sudoRole
                    223:          objectClass: top
                    224:          cn: role1
                    225:          sudoUser: johnny
                    226:          sudoHost: ALL
                    227:          sudoCommand: ALL
                    228:          sudoCommand: !/bin/sh
                    229: 
                    230:          # LDAP equivalent of puddles
                    231:          # Notice that even though ALL comes last, it still behaves like
                    232:          # role1 since the LDAP code assumes the more paranoid configuration
                    233:          dn: cn=role2,ou=Sudoers,dc=my-domain,dc=com
                    234:          objectClass: sudoRole
                    235:          objectClass: top
                    236:          cn: role2
                    237:          sudoUser: puddles
                    238:          sudoHost: ALL
                    239:          sudoCommand: !/bin/sh
                    240:          sudoCommand: ALL
                    241: 
                    242:      Another difference is that negations on the Host, User or Runas are
                    243:      currently ignored.  For example, the following attributes do not behave
                    244:      the way one might expect.
                    245: 
                    246:          # does not match all but joe
                    247:          # rather, does not match anyone
                    248:          sudoUser: !joe
                    249: 
                    250:          # does not match all but joe
                    251:          # rather, matches everyone including Joe
                    252:          sudoUser: ALL
                    253:          sudoUser: !joe
                    254: 
                    255:          # does not match all but web01
                    256:          # rather, matches all hosts including web01
                    257:          sudoHost: ALL
                    258:          sudoHost: !web01
                    259: 
                    260:    SSuuddooeerrss sscchheemmaa
                    261:      In order to use ssuuddoo's LDAP support, the ssuuddoo schema must be installed on
                    262:      your LDAP server.  In addition, be sure to index the sudoUser attribute.
                    263: 
                    264:      Three versions of the schema: one for OpenLDAP servers (_s_c_h_e_m_a_._O_p_e_n_L_D_A_P),
                    265:      one for Netscape-derived servers (_s_c_h_e_m_a_._i_P_l_a_n_e_t), and one for Microsoft
                    266:      Active Directory (_s_c_h_e_m_a_._A_c_t_i_v_e_D_i_r_e_c_t_o_r_y) may be found in the ssuuddoo
                    267:      distribution.
1.1       misho     268: 
1.1.1.3   misho     269:      The schema for ssuuddoo in OpenLDAP form is also included in the _E_X_A_M_P_L_E_S
                    270:      section.
1.1       misho     271: 
                    272:    CCoonnffiigguurriinngg llddaapp..ccoonnff
1.1.1.3   misho     273:      Sudo reads the _/_e_t_c_/_l_d_a_p_._c_o_n_f file for LDAP-specific configuration.
1.1.1.4   misho     274:      Typically, this file is shared between different LDAP-aware clients.  As
1.1.1.3   misho     275:      such, most of the settings are not ssuuddoo-specific. Note that ssuuddoo parses
                    276:      _/_e_t_c_/_l_d_a_p_._c_o_n_f itself and may support options that differ from those
1.1.1.4   misho     277:      described in the system's ldap.conf(1m) manual.  The path to _l_d_a_p_._c_o_n_f may
                    278:      be overridden via the _l_d_a_p___c_o_n_f plugin argument in sudo.conf(4).
1.1.1.3   misho     279: 
                    280:      Also note that on systems using the OpenLDAP libraries, default values
                    281:      specified in _/_e_t_c_/_o_p_e_n_l_d_a_p_/_l_d_a_p_._c_o_n_f or the user's _._l_d_a_p_r_c files are not
                    282:      used.
                    283: 
                    284:      Only those options explicitly listed in _/_e_t_c_/_l_d_a_p_._c_o_n_f as being supported
                    285:      by ssuuddoo are honored.  Configuration options are listed below in upper
                    286:      case but are parsed in a case-independent manner.
1.1       misho     287: 
1.1.1.5   misho     288:      The pound sign (`#') is used to indicate a comment.  Both the comment
                    289:      character and any text after it, up to the end of the line, are ignored.
1.1.1.4   misho     290:      Long lines can be continued with a backslash (`\') as the last character
                    291:      on the line.  Note that leading white space is removed from the beginning
                    292:      of lines even when the continuation character is used.
                    293: 
1.1.1.3   misho     294:      UURRII _l_d_a_p_[_s_]_:_/_/_[_h_o_s_t_n_a_m_e_[_:_p_o_r_t_]_] _._._.
1.1.1.4   misho     295:            Specifies a white space-delimited list of one or more URIs
1.1       misho     296:            describing the LDAP server(s) to connect to.  The _p_r_o_t_o_c_o_l may be
1.1.1.3   misho     297:            either _l_d_a_p _l_d_a_p_s, the latter being for servers that support TLS
1.1       misho     298:            (SSL) encryption.  If no _p_o_r_t is specified, the default is port 389
                    299:            for ldap:// or port 636 for ldaps://.  If no _h_o_s_t_n_a_m_e is specified,
1.1.1.3   misho     300:            ssuuddoo will connect to _l_o_c_a_l_h_o_s_t.  Multiple UURRII lines are treated
1.1       misho     301:            identically to a UURRII line containing multiple entries.  Only
                    302:            systems using the OpenSSL libraries support the mixing of ldap://
1.1.1.3   misho     303:            and ldaps:// URIs.  Both the Netscape-derived and Tivoli LDAP
                    304:            libraries used on most commercial versions of Unix are only capable
                    305:            of supporting one or the other.
1.1       misho     306: 
1.1.1.3   misho     307:      HHOOSSTT _n_a_m_e_[_:_p_o_r_t_] _._._.
1.1.1.4   misho     308:            If no UURRII is specified, the HHOOSSTT parameter specifies a white space-
1.1       misho     309:            delimited list of LDAP servers to connect to.  Each host may
1.1.1.3   misho     310:            include an optional _p_o_r_t separated by a colon (`:').  The HHOOSSTT
1.1       misho     311:            parameter is deprecated in favor of the UURRII specification and is
                    312:            included for backwards compatibility.
                    313: 
1.1.1.3   misho     314:      PPOORRTT _p_o_r_t___n_u_m_b_e_r
1.1       misho     315:            If no UURRII is specified, the PPOORRTT parameter specifies the default
                    316:            port to connect to on the LDAP server if a HHOOSSTT parameter does not
                    317:            specify the port itself.  If no PPOORRTT parameter is used, the default
                    318:            is port 389 for LDAP and port 636 for LDAP over TLS (SSL).  The
                    319:            PPOORRTT parameter is deprecated in favor of the UURRII specification and
                    320:            is included for backwards compatibility.
                    321: 
1.1.1.3   misho     322:      BBIINNDD__TTIIMMEELLIIMMIITT _s_e_c_o_n_d_s
1.1       misho     323:            The BBIINNDD__TTIIMMEELLIIMMIITT parameter specifies the amount of time, in
                    324:            seconds, to wait while trying to connect to an LDAP server.  If
                    325:            multiple UURRIIs or HHOOSSTTs are specified, this is the amount of time to
                    326:            wait before trying the next one in the list.
                    327: 
1.1.1.3   misho     328:      NNEETTWWOORRKK__TTIIMMEEOOUUTT _s_e_c_o_n_d_s
1.1       misho     329:            An alias for BBIINNDD__TTIIMMEELLIIMMIITT for OpenLDAP compatibility.
                    330: 
1.1.1.3   misho     331:      TTIIMMEELLIIMMIITT _s_e_c_o_n_d_s
1.1       misho     332:            The TTIIMMEELLIIMMIITT parameter specifies the amount of time, in seconds,
                    333:            to wait for a response to an LDAP query.
                    334: 
1.1.1.3   misho     335:      TTIIMMEEOOUUTT _s_e_c_o_n_d_s
1.1       misho     336:            The TTIIMMEEOOUUTT parameter specifies the amount of time, in seconds, to
                    337:            wait for a response from the various LDAP APIs.
                    338: 
1.1.1.3   misho     339:      SSUUDDOOEERRSS__BBAASSEE _b_a_s_e
1.1       misho     340:            The base DN to use when performing ssuuddoo LDAP queries.  Typically
                    341:            this is of the form ou=SUDOers,dc=example,dc=com for the domain
                    342:            example.com.  Multiple SSUUDDOOEERRSS__BBAASSEE lines may be specified, in
                    343:            which case they are queried in the order specified.
                    344: 
1.1.1.3   misho     345:      SSUUDDOOEERRSS__SSEEAARRCCHH__FFIILLTTEERR _l_d_a_p___f_i_l_t_e_r
1.1       misho     346:            An LDAP filter which is used to restrict the set of records
                    347:            returned when performing a ssuuddoo LDAP query.  Typically, this is of
                    348:            the form attribute=value or
1.1.1.6 ! misho     349:            (&(attribute=value)(attribute2=value2)).  The default search filter
        !           350:            is: objectClass=sudoRole.  If _l_d_a_p___f_i_l_t_e_r is omitted, no search
        !           351:            filter will be used.
1.1       misho     352: 
1.1.1.3   misho     353:      SSUUDDOOEERRSS__TTIIMMEEDD _o_n_/_t_r_u_e_/_y_e_s_/_o_f_f_/_f_a_l_s_e_/_n_o
1.1       misho     354:            Whether or not to evaluate the sudoNotBefore and sudoNotAfter
                    355:            attributes that implement time-dependent sudoers entries.
                    356: 
1.1.1.3   misho     357:      SSUUDDOOEERRSS__DDEEBBUUGG _d_e_b_u_g___l_e_v_e_l
1.1       misho     358:            This sets the debug level for ssuuddoo LDAP queries.  Debugging
                    359:            information is printed to the standard error.  A value of 1 results
                    360:            in a moderate amount of debugging information.  A value of 2 shows
                    361:            the results of the matches themselves.  This parameter should not
                    362:            be set in a production environment as the extra information is
                    363:            likely to confuse users.
                    364: 
1.1.1.4   misho     365:            The SSUUDDOOEERRSS__DDEEBBUUGG parameter is deprecated and will be removed in a
                    366:            future release.  The same information is now logged via the ssuuddoo
                    367:            debugging framework using the ``ldap'' subsystem at priorities _d_i_a_g
                    368:            and _i_n_f_o for _d_e_b_u_g___l_e_v_e_l values 1 and 2 respectively.  See the
                    369:            sudo.conf(4) manual for details on how to configure ssuuddoo debugging.
                    370: 
1.1.1.3   misho     371:      BBIINNDDDDNN _D_N
1.1       misho     372:            The BBIINNDDDDNN parameter specifies the identity, in the form of a
                    373:            Distinguished Name (DN), to use when performing LDAP operations.
                    374:            If not specified, LDAP operations are performed with an anonymous
                    375:            identity.  By default, most LDAP servers will allow anonymous
                    376:            access.
                    377: 
1.1.1.3   misho     378:      BBIINNDDPPWW _s_e_c_r_e_t
1.1       misho     379:            The BBIINNDDPPWW parameter specifies the password to use when performing
                    380:            LDAP operations.  This is typically used in conjunction with the
                    381:            BBIINNDDDDNN parameter.
                    382: 
1.1.1.3   misho     383:      RROOOOTTBBIINNDDDDNN _D_N
1.1       misho     384:            The RROOOOTTBBIINNDDDDNN parameter specifies the identity, in the form of a
                    385:            Distinguished Name (DN), to use when performing privileged LDAP
                    386:            operations, such as _s_u_d_o_e_r_s queries.  The password corresponding to
1.1.1.4   misho     387:            the identity should be stored in the or the path specified by the
                    388:            _l_d_a_p___s_e_c_r_e_t plugin argument in sudo.conf(4), which defaults to
                    389:            _/_e_t_c_/_l_d_a_p_._s_e_c_r_e_t.  If no RROOOOTTBBIINNDDDDNN is specified, the BBIINNDDDDNN
                    390:            identity is used (if any).
1.1       misho     391: 
1.1.1.3   misho     392:      LLDDAAPP__VVEERRSSIIOONN _n_u_m_b_e_r
1.1       misho     393:            The version of the LDAP protocol to use when connecting to the
                    394:            server.  The default value is protocol version 3.
                    395: 
1.1.1.3   misho     396:      SSSSLL _o_n_/_t_r_u_e_/_y_e_s_/_o_f_f_/_f_a_l_s_e_/_n_o
1.1       misho     397:            If the SSSSLL parameter is set to on, true or yes, TLS (SSL)
                    398:            encryption is always used when communicating with the LDAP server.
                    399:            Typically, this involves connecting to the server on port 636
                    400:            (ldaps).
                    401: 
1.1.1.3   misho     402:      SSSSLL _s_t_a_r_t___t_l_s
1.1       misho     403:            If the SSSSLL parameter is set to start_tls, the LDAP server
                    404:            connection is initiated normally and TLS encryption is begun before
                    405:            the bind credentials are sent.  This has the advantage of not
                    406:            requiring a dedicated port for encrypted communications.  This
                    407:            parameter is only supported by LDAP servers that honor the
1.1.1.3   misho     408:            _s_t_a_r_t___t_l_s extension, such as the OpenLDAP and Tivoli Directory
                    409:            servers.
1.1       misho     410: 
1.1.1.3   misho     411:      TTLLSS__CCHHEECCKKPPEEEERR _o_n_/_t_r_u_e_/_y_e_s_/_o_f_f_/_f_a_l_s_e_/_n_o
1.1       misho     412:            If enabled, TTLLSS__CCHHEECCKKPPEEEERR will cause the LDAP server's TLS
                    413:            certificated to be verified.  If the server's TLS certificate
                    414:            cannot be verified (usually because it is signed by an unknown
                    415:            certificate authority), ssuuddoo will be unable to connect to it.  If
                    416:            TTLLSS__CCHHEECCKKPPEEEERR is disabled, no check is made.  Note that disabling
                    417:            the check creates an opportunity for man-in-the-middle attacks
                    418:            since the server's identity will not be authenticated.  If
                    419:            possible, the CA's certificate should be installed locally so it
1.1.1.3   misho     420:            can be verified.  This option is not supported by the Tivoli
                    421:            Directory Server LDAP libraries.
1.1       misho     422: 
1.1.1.3   misho     423:      TTLLSS__CCAACCEERRTT _f_i_l_e _n_a_m_e
1.1       misho     424:            An alias for TTLLSS__CCAACCEERRTTFFIILLEE for OpenLDAP compatibility.
                    425: 
1.1.1.3   misho     426:      TTLLSS__CCAACCEERRTTFFIILLEE _f_i_l_e _n_a_m_e
1.1       misho     427:            The path to a certificate authority bundle which contains the
                    428:            certificates for all the Certificate Authorities the client knows
                    429:            to be valid, e.g. _/_e_t_c_/_s_s_l_/_c_a_-_b_u_n_d_l_e_._p_e_m.  This option is only
                    430:            supported by the OpenLDAP libraries.  Netscape-derived LDAP
                    431:            libraries use the same certificate database for CA and client
                    432:            certificates (see TTLLSS__CCEERRTT).
                    433: 
1.1.1.3   misho     434:      TTLLSS__CCAACCEERRTTDDIIRR _d_i_r_e_c_t_o_r_y
1.1       misho     435:            Similar to TTLLSS__CCAACCEERRTTFFIILLEE but instead of a file, it is a directory
                    436:            containing individual Certificate Authority certificates, e.g.
                    437:            _/_e_t_c_/_s_s_l_/_c_e_r_t_s.  The directory specified by TTLLSS__CCAACCEERRTTDDIIRR is
                    438:            checked after TTLLSS__CCAACCEERRTTFFIILLEE.  This option is only supported by the
                    439:            OpenLDAP libraries.
                    440: 
1.1.1.3   misho     441:      TTLLSS__CCEERRTT _f_i_l_e _n_a_m_e
1.1       misho     442:            The path to a file containing the client certificate which can be
                    443:            used to authenticate the client to the LDAP server.  The
                    444:            certificate type depends on the LDAP libraries used.
                    445: 
                    446:            OpenLDAP:
1.1.1.3   misho     447:                  tls_cert /etc/ssl/client_cert.pem
1.1       misho     448: 
                    449:            Netscape-derived:
1.1.1.3   misho     450:                  tls_cert /var/ldap/cert7.db
1.1       misho     451: 
1.1.1.3   misho     452:            Tivoli Directory Server:
                    453:                  Unused, the key database specified by TTLLSS__KKEEYY contains both
                    454:                  keys and certificates.
1.1       misho     455: 
1.1.1.3   misho     456:                  When using Netscape-derived libraries, this file may also
                    457:                  contain Certificate Authority certificates.
                    458: 
                    459:      TTLLSS__KKEEYY _f_i_l_e _n_a_m_e
1.1       misho     460:            The path to a file containing the private key which matches the
                    461:            certificate specified by TTLLSS__CCEERRTT.  The private key must not be
                    462:            password-protected.  The key type depends on the LDAP libraries
                    463:            used.
                    464: 
                    465:            OpenLDAP:
1.1.1.3   misho     466:                  tls_key /etc/ssl/client_key.pem
1.1       misho     467: 
                    468:            Netscape-derived:
1.1.1.3   misho     469:                  tls_key /var/ldap/key3.db
                    470: 
                    471:            Tivoli Directory Server:
1.1.1.5   misho     472:                  tls_key /usr/ldap/ldapkey.kdb
1.1.1.3   misho     473:            When using Tivoli LDAP libraries, this file may also contain
                    474:            Certificate Authority and client certificates and may be encrypted.
                    475: 
                    476:      TTLLSS__KKEEYYPPWW _s_e_c_r_e_t
                    477:            The TTLLSS__KKEEYYPPWW contains the password used to decrypt the key
                    478:            database on clients using the Tivoli Directory Server LDAP library.
1.1.1.5   misho     479:            This should be a simple string without quotes.  The password may
                    480:            not include the comment character (`#') and escaping of special
                    481:            characters with a backslash (`\') is not supported.  If this option
                    482:            is used, _/_e_t_c_/_l_d_a_p_._c_o_n_f must not be world-readable to avoid
                    483:            exposing the password.  Alternately, a _s_t_a_s_h _f_i_l_e can be used to
                    484:            store the password in encrypted form (see below).
                    485: 
1.1.1.3   misho     486:            If no TTLLSS__KKEEYYPPWW is specified, a _s_t_a_s_h _f_i_l_e will be used if it
                    487:            exists.  The _s_t_a_s_h _f_i_l_e must have the same path as the file
                    488:            specified by TTLLSS__KKEEYY, but use a .sth file extension instead of
                    489:            .kdb, e.g. ldapkey.sth.  The default ldapkey.kdb that ships with
                    490:            Tivoli Directory Server is encrypted with the password
1.1.1.5   misho     491:            ssl_password.  The _g_s_k_8_c_a_p_i_c_m_d utility can be used to manage the
                    492:            key database and create a _s_t_a_s_h _f_i_l_e.  This option is only
                    493:            supported by the Tivoli LDAP libraries.
1.1       misho     494: 
1.1.1.3   misho     495:      TTLLSS__RRAANNDDFFIILLEE _f_i_l_e _n_a_m_e
1.1       misho     496:            The TTLLSS__RRAANNDDFFIILLEE parameter specifies the path to an entropy source
                    497:            for systems that lack a random device.  It is generally used in
                    498:            conjunction with _p_r_n_g_d or _e_g_d.  This option is only supported by
                    499:            the OpenLDAP libraries.
                    500: 
1.1.1.3   misho     501:      TTLLSS__CCIIPPHHEERRSS _c_i_p_h_e_r _l_i_s_t
1.1       misho     502:            The TTLLSS__CCIIPPHHEERRSS parameter allows the administer to restrict which
                    503:            encryption algorithms may be used for TLS (SSL) connections.  See
1.1.1.3   misho     504:            the OpenLDAP or Tivoli Directory Server manual for a list of valid
                    505:            ciphers.  This option is not supported by Netscape-derived
                    506:            libraries.
1.1       misho     507: 
1.1.1.3   misho     508:      UUSSEE__SSAASSLL _o_n_/_t_r_u_e_/_y_e_s_/_o_f_f_/_f_a_l_s_e_/_n_o
1.1       misho     509:            Enable UUSSEE__SSAASSLL for LDAP servers that support SASL authentication.
                    510: 
1.1.1.3   misho     511:      SSAASSLL__AAUUTTHH__IIDD _i_d_e_n_t_i_t_y
1.1       misho     512:            The SASL user name to use when connecting to the LDAP server.  By
                    513:            default, ssuuddoo will use an anonymous connection.
                    514: 
1.1.1.3   misho     515:      RROOOOTTUUSSEE__SSAASSLL _o_n_/_t_r_u_e_/_y_e_s_/_o_f_f_/_f_a_l_s_e_/_n_o
1.1       misho     516:            Enable RROOOOTTUUSSEE__SSAASSLL to enable SASL authentication when connecting
                    517:            to an LDAP server from a privileged process, such as ssuuddoo.
                    518: 
1.1.1.3   misho     519:      RROOOOTTSSAASSLL__AAUUTTHH__IIDD _i_d_e_n_t_i_t_y
1.1       misho     520:            The SASL user name to use when RROOOOTTUUSSEE__SSAASSLL is enabled.
                    521: 
1.1.1.3   misho     522:      SSAASSLL__SSEECCPPRROOPPSS _n_o_n_e_/_p_r_o_p_e_r_t_i_e_s
1.1       misho     523:            SASL security properties or _n_o_n_e for no properties.  See the SASL
                    524:            programmer's manual for details.
                    525: 
1.1.1.3   misho     526:      KKRRBB55__CCCCNNAAMMEE _f_i_l_e _n_a_m_e
1.1       misho     527:            The path to the Kerberos 5 credential cache to use when
                    528:            authenticating with the remote server.
                    529: 
1.1.1.3   misho     530:      DDEERREEFF _n_e_v_e_r_/_s_e_a_r_c_h_i_n_g_/_f_i_n_d_i_n_g_/_a_l_w_a_y_s
1.1       misho     531:            How alias dereferencing is to be performed when searching.  See the
1.1.1.3   misho     532:            ldap.conf(1m) manual for a full description of this option.
1.1       misho     533: 
1.1.1.3   misho     534:      See the _l_d_a_p_._c_o_n_f entry in the _E_X_A_M_P_L_E_S section.
1.1       misho     535: 
                    536:    CCoonnffiigguurriinngg nnsssswwiittcchh..ccoonnff
1.1.1.3   misho     537:      Unless it is disabled at build time, ssuuddoo consults the Name Service
                    538:      Switch file, _/_e_t_c_/_n_s_s_w_i_t_c_h_._c_o_n_f, to specify the _s_u_d_o_e_r_s search order.
                    539:      Sudo looks for a line beginning with sudoers: and uses this to determine
                    540:      the search order.  Note that ssuuddoo does not stop searching after the first
                    541:      match and later matches take precedence over earlier ones.  The following
                    542:      sources are recognized:
1.1       misho     543: 
1.1.1.3   misho     544:          files     read sudoers from _/_e_t_c_/_s_u_d_o_e_r_s
                    545:          ldap      read sudoers from LDAP
1.1       misho     546: 
1.1.1.3   misho     547:      In addition, the entry [NOTFOUND=return] will short-circuit the search if
                    548:      the user was not found in the preceding source.
1.1       misho     549: 
1.1.1.3   misho     550:      To consult LDAP first followed by the local sudoers file (if it exists),
                    551:      use:
1.1       misho     552: 
1.1.1.3   misho     553:          sudoers: ldap files
1.1       misho     554: 
1.1.1.3   misho     555:      The local _s_u_d_o_e_r_s file can be ignored completely by using:
1.1       misho     556: 
1.1.1.3   misho     557:          sudoers: ldap
1.1       misho     558: 
1.1.1.3   misho     559:      If the _/_e_t_c_/_n_s_s_w_i_t_c_h_._c_o_n_f file is not present or there is no sudoers
                    560:      line, the following default is assumed:
1.1       misho     561: 
1.1.1.3   misho     562:          sudoers: files
1.1       misho     563: 
1.1.1.3   misho     564:      Note that _/_e_t_c_/_n_s_s_w_i_t_c_h_._c_o_n_f is supported even when the underlying
                    565:      operating system does not use an nsswitch.conf file, except on AIX (see
                    566:      below).
1.1       misho     567: 
                    568:    CCoonnffiigguurriinngg nneettssvvcc..ccoonnff
1.1.1.3   misho     569:      On AIX systems, the _/_e_t_c_/_n_e_t_s_v_c_._c_o_n_f file is consulted instead of
                    570:      _/_e_t_c_/_n_s_s_w_i_t_c_h_._c_o_n_f.  ssuuddoo simply treats _n_e_t_s_v_c_._c_o_n_f as a variant of
                    571:      _n_s_s_w_i_t_c_h_._c_o_n_f; information in the previous section unrelated to the file
                    572:      format itself still applies.
1.1       misho     573: 
1.1.1.3   misho     574:      To consult LDAP first followed by the local sudoers file (if it exists),
                    575:      use:
1.1       misho     576: 
1.1.1.3   misho     577:          sudoers = ldap, files
1.1       misho     578: 
1.1.1.3   misho     579:      The local _s_u_d_o_e_r_s file can be ignored completely by using:
1.1       misho     580: 
1.1.1.3   misho     581:          sudoers = ldap
1.1       misho     582: 
1.1.1.4   misho     583:      To treat LDAP as authoritative and only use the local sudoers file if the
1.1.1.3   misho     584:      user is not present in LDAP, use:
1.1       misho     585: 
1.1.1.3   misho     586:          sudoers = ldap = auth, files
1.1       misho     587: 
1.1.1.4   misho     588:      Note that in the above example, the auth qualifier only affects user
1.1.1.3   misho     589:      lookups; both LDAP and _s_u_d_o_e_r_s will be queried for Defaults entries.
1.1       misho     590: 
1.1.1.3   misho     591:      If the _/_e_t_c_/_n_e_t_s_v_c_._c_o_n_f file is not present or there is no sudoers line,
                    592:      the following default is assumed:
1.1       misho     593: 
1.1.1.3   misho     594:          sudoers = files
1.1       misho     595: 
                    596: FFIILLEESS
1.1.1.3   misho     597:      _/_e_t_c_/_l_d_a_p_._c_o_n_f            LDAP configuration file
1.1       misho     598: 
1.1.1.3   misho     599:      _/_e_t_c_/_n_s_s_w_i_t_c_h_._c_o_n_f        determines sudoers source order
1.1       misho     600: 
1.1.1.3   misho     601:      _/_e_t_c_/_n_e_t_s_v_c_._c_o_n_f          determines sudoers source order on AIX
1.1       misho     602: 
                    603: EEXXAAMMPPLLEESS
                    604:    EExxaammppllee llddaapp..ccoonnff
1.1.1.3   misho     605:        # Either specify one or more URIs or one or more host:port pairs.
                    606:        # If neither is specified sudo will default to localhost, port 389.
                    607:        #
                    608:        #host          ldapserver
                    609:        #host          ldapserver1 ldapserver2:390
                    610:        #
                    611:        # Default port if host is specified without one, defaults to 389.
                    612:        #port          389
                    613:        #
                    614:        # URI will override the host and port settings.
                    615:        uri            ldap://ldapserver
                    616:        #uri            ldaps://secureldapserver
                    617:        #uri            ldaps://secureldapserver ldap://ldapserver
                    618:        #
                    619:        # The amount of time, in seconds, to wait while trying to connect to
                    620:        # an LDAP server.
                    621:        bind_timelimit 30
                    622:        #
                    623:        # The amount of time, in seconds, to wait while performing an LDAP query.
                    624:        timelimit 30
                    625:        #
                    626:        # Must be set or sudo will ignore LDAP; may be specified multiple times.
                    627:        sudoers_base   ou=SUDOers,dc=example,dc=com
                    628:        #
                    629:        # verbose sudoers matching from ldap
                    630:        #sudoers_debug 2
                    631:        #
                    632:        # Enable support for time-based entries in sudoers.
                    633:        #sudoers_timed yes
                    634:        #
                    635:        # optional proxy credentials
                    636:        #binddn        <who to search as>
                    637:        #bindpw        <password>
                    638:        #rootbinddn    <who to search as, uses /etc/ldap.secret for bindpw>
                    639:        #
                    640:        # LDAP protocol version, defaults to 3
                    641:        #ldap_version 3
                    642:        #
                    643:        # Define if you want to use an encrypted LDAP connection.
                    644:        # Typically, you must also set the port to 636 (ldaps).
                    645:        #ssl on
                    646:        #
                    647:        # Define if you want to use port 389 and switch to
                    648:        # encryption before the bind credentials are sent.
                    649:        # Only supported by LDAP servers that support the start_tls
                    650:        # extension such as OpenLDAP.
                    651:        #ssl start_tls
                    652:        #
                    653:        # Additional TLS options follow that allow tweaking of the
                    654:        # SSL/TLS connection.
                    655:        #
                    656:        #tls_checkpeer yes # verify server SSL certificate
                    657:        #tls_checkpeer no  # ignore server SSL certificate
                    658:        #
                    659:        # If you enable tls_checkpeer, specify either tls_cacertfile
                    660:        # or tls_cacertdir.  Only supported when using OpenLDAP.
                    661:        #
                    662:        #tls_cacertfile /etc/certs/trusted_signers.pem
                    663:        #tls_cacertdir  /etc/certs
                    664:        #
                    665:        # For systems that don't have /dev/random
                    666:        # use this along with PRNGD or EGD.pl to seed the
                    667:        # random number pool to generate cryptographic session keys.
                    668:        # Only supported when using OpenLDAP.
                    669:        #
                    670:        #tls_randfile /etc/egd-pool
                    671:        #
                    672:        # You may restrict which ciphers are used.  Consult your SSL
                    673:        # documentation for which options go here.
                    674:        # Only supported when using OpenLDAP.
                    675:        #
                    676:        #tls_ciphers <cipher-list>
                    677:        #
                    678:        # Sudo can provide a client certificate when communicating to
                    679:        # the LDAP server.
                    680:        # Tips:
                    681:        #   * Enable both lines at the same time.
                    682:        #   * Do not password protect the key file.
                    683:        #   * Ensure the keyfile is only readable by root.
                    684:        #
                    685:        # For OpenLDAP:
                    686:        #tls_cert /etc/certs/client_cert.pem
                    687:        #tls_key  /etc/certs/client_key.pem
                    688:        #
                    689:        # For SunONE or iPlanet LDAP, tls_cert and tls_key may specify either
                    690:        # a directory, in which case the files in the directory must have the
                    691:        # default names (e.g. cert8.db and key4.db), or the path to the cert
                    692:        # and key files themselves.  However, a bug in version 5.0 of the LDAP
                    693:        # SDK will prevent specific file names from working.  For this reason
                    694:        # it is suggested that tls_cert and tls_key be set to a directory,
                    695:        # not a file name.
                    696:        #
                    697:        # The certificate database specified by tls_cert may contain CA certs
                    698:        # and/or the client's cert.  If the client's cert is included, tls_key
                    699:        # should be specified as well.
                    700:        # For backward compatibility, "sslpath" may be used in place of tls_cert.
                    701:        #tls_cert /var/ldap
                    702:        #tls_key /var/ldap
                    703:        #
                    704:        # If using SASL authentication for LDAP (OpenSSL)
                    705:        # use_sasl yes
                    706:        # sasl_auth_id <SASL user name>
                    707:        # rootuse_sasl yes
                    708:        # rootsasl_auth_id <SASL user name for root access>
                    709:        # sasl_secprops none
                    710:        # krb5_ccname /etc/.ldapcache
1.1       misho     711: 
                    712:    SSuuddoo sscchheemmaa ffoorr OOppeennLLDDAAPP
1.1.1.3   misho     713:      The following schema, in OpenLDAP format, is included with ssuuddoo source
                    714:      and binary distributions as _s_c_h_e_m_a_._O_p_e_n_L_D_A_P.  Simply copy it to the
                    715:      schema directory (e.g. _/_e_t_c_/_o_p_e_n_l_d_a_p_/_s_c_h_e_m_a), add the proper include line
                    716:      in _s_l_a_p_d_._c_o_n_f and restart ssllaappdd.
                    717: 
                    718:        attributetype ( 1.3.6.1.4.1.15953.9.1.1
                    719:           NAME 'sudoUser'
                    720:           DESC 'User(s) who may  run sudo'
                    721:           EQUALITY caseExactIA5Match
                    722:           SUBSTR caseExactIA5SubstringsMatch
                    723:           SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
                    724: 
                    725:        attributetype ( 1.3.6.1.4.1.15953.9.1.2
                    726:           NAME 'sudoHost'
                    727:           DESC 'Host(s) who may run sudo'
                    728:           EQUALITY caseExactIA5Match
                    729:           SUBSTR caseExactIA5SubstringsMatch
                    730:           SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
                    731: 
                    732:        attributetype ( 1.3.6.1.4.1.15953.9.1.3
                    733:           NAME 'sudoCommand'
                    734:           DESC 'Command(s) to be executed by sudo'
                    735:           EQUALITY caseExactIA5Match
                    736:           SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
                    737: 
                    738:        attributetype ( 1.3.6.1.4.1.15953.9.1.4
                    739:           NAME 'sudoRunAs'
                    740:           DESC 'User(s) impersonated by sudo'
                    741:           EQUALITY caseExactIA5Match
                    742:           SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
                    743: 
                    744:        attributetype ( 1.3.6.1.4.1.15953.9.1.5
                    745:           NAME 'sudoOption'
                    746:           DESC 'Options(s) followed by sudo'
                    747:           EQUALITY caseExactIA5Match
                    748:           SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
                    749: 
                    750:        attributetype ( 1.3.6.1.4.1.15953.9.1.6
                    751:           NAME 'sudoRunAsUser'
                    752:           DESC 'User(s) impersonated by sudo'
                    753:           EQUALITY caseExactIA5Match
                    754:           SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
                    755: 
                    756:        attributetype ( 1.3.6.1.4.1.15953.9.1.7
                    757:           NAME 'sudoRunAsGroup'
                    758:           DESC 'Group(s) impersonated by sudo'
                    759:           EQUALITY caseExactIA5Match
                    760:           SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
                    761: 
                    762:        attributetype ( 1.3.6.1.4.1.15953.9.1.8
                    763:           NAME 'sudoNotBefore'
                    764:           DESC 'Start of time interval for which the entry is valid'
                    765:           EQUALITY generalizedTimeMatch
                    766:           ORDERING generalizedTimeOrderingMatch
                    767:           SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
                    768: 
                    769:        attributetype ( 1.3.6.1.4.1.15953.9.1.9
                    770:           NAME 'sudoNotAfter'
                    771:           DESC 'End of time interval for which the entry is valid'
                    772:           EQUALITY generalizedTimeMatch
                    773:           ORDERING generalizedTimeOrderingMatch
                    774:           SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
                    775: 
                    776:        attributeTypes ( 1.3.6.1.4.1.15953.9.1.10
                    777:            NAME 'sudoOrder'
                    778:            DESC 'an integer to order the sudoRole entries'
                    779:            EQUALITY integerMatch
                    780:            ORDERING integerOrderingMatch
                    781:            SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
                    782: 
                    783:        objectclass ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' SUP top STRUCTURAL
                    784:           DESC 'Sudoer Entries'
                    785:           MUST ( cn )
                    786:           MAY ( sudoUser $ sudoHost $ sudoCommand $ sudoRunAs $ sudoRunAsUser $
                    787:                 sudoRunAsGroup $ sudoOption $ sudoNotBefore $ sudoNotAfter $
                    788:                 sudoOrder $ description )
                    789:           )
1.1       misho     790: 
                    791: SSEEEE AALLSSOO
1.1.1.4   misho     792:      ldap.conf(4), sudo.conf(4), sudoers(1m)
1.1       misho     793: 
                    794: CCAAVVEEAATTSS
1.1.1.3   misho     795:      Note that there are differences in the way that LDAP-based _s_u_d_o_e_r_s is
                    796:      parsed compared to file-based _s_u_d_o_e_r_s.  See the _D_i_f_f_e_r_e_n_c_e_s _b_e_t_w_e_e_n _L_D_A_P
                    797:      _a_n_d _n_o_n_-_L_D_A_P _s_u_d_o_e_r_s section for more information.
1.1       misho     798: 
                    799: BBUUGGSS
1.1.1.3   misho     800:      If you feel you have found a bug in ssuuddoo, please submit a bug report at
                    801:      http://www.sudo.ws/sudo/bugs/
1.1       misho     802: 
                    803: SSUUPPPPOORRTT
1.1.1.3   misho     804:      Limited free support is available via the sudo-users mailing list, see
                    805:      http://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or search the
                    806:      archives.
1.1       misho     807: 
                    808: DDIISSCCLLAAIIMMEERR
1.1.1.3   misho     809:      ssuuddoo is provided ``AS IS'' and any express or implied warranties,
                    810:      including, but not limited to, the implied warranties of merchantability
                    811:      and fitness for a particular purpose are disclaimed.  See the LICENSE
                    812:      file distributed with ssuuddoo or http://www.sudo.ws/sudo/license.html for
                    813:      complete details.
1.1       misho     814: 
1.1.1.6 ! misho     815: Sudo 1.8.10                    February 7, 2014                    Sudo 1.8.10

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>