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

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

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