Imported Upstream version 1.8.7
[debian/sudo] / doc / sudoers.cat
index 2459758172ab19510b3a17915ee3c2e4a2fae192..02f31e77dba1fcd7792e045a234bd2ee83fbbe26 100644 (file)
-SUDOERS(4)                   MAINTENANCE COMMANDS                   SUDOERS(4)
-
-
+SUDOERS(4)                    Programmer's Manual                   SUDOERS(4)
 
 N\bNA\bAM\bME\bE
-       sudoers - default sudo security policy module
+     s\bsu\bud\bdo\boe\ber\brs\bs - default sudo security policy plugin
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-       The _\bs_\bu_\bd_\bo_\be_\br_\bs policy module determines a user's s\bsu\bud\bdo\bo privileges.  It is
-       the default s\bsu\bud\bdo\bo policy plugin.  The policy is driven by the
-       _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs file or, optionally in LDAP.  The policy format is
-       described in detail in the "SUDOERS FILE FORMAT" section.  For
-       information on storing _\bs_\bu_\bd_\bo_\be_\br_\bs policy information in LDAP, please see
-       _\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bd_\ba_\bp(4).
-
-   A\bAu\but\bth\bhe\ben\bnt\bti\bic\bca\bat\bti\bio\bon\bn a\ban\bnd\bd L\bLo\bog\bgg\bgi\bin\bng\bg
-       The _\bs_\bu_\bd_\bo_\be_\br_\bs security policy requires that most users authenticate
-       themselves before they can use s\bsu\bud\bdo\bo.  A password is not required if the
-       invoking user is root, if the target user is the same as the invoking
-       user, or if the policy has disabled authentication for the user or
-       command.  Unlike _\bs_\bu(1), when _\bs_\bu_\bd_\bo_\be_\br_\bs requires authentication, it
-       validates the invoking user's credentials, not the target user's (or
-       root's) credentials.  This can be changed via the _\br_\bo_\bo_\bt_\bp_\bw, _\bt_\ba_\br_\bg_\be_\bt_\bp_\bw and
-       _\br_\bu_\bn_\ba_\bs_\bp_\bw flags, described later.
-
-       If a user who is not listed in the policy tries to run a command via
-       s\bsu\bud\bdo\bo, mail is sent to the proper authorities.  The address used for
-       such mail is configurable via the _\bm_\ba_\bi_\bl_\bt_\bo Defaults entry (described
-       later) and defaults to root.
-
-       Note that mail will not be sent if an unauthorized user tries to run
-       s\bsu\bud\bdo\bo with the -\b-l\bl or -\b-v\bv option.  This allows users to determine for
-       themselves whether or not they are allowed to use s\bsu\bud\bdo\bo.
-
-       If s\bsu\bud\bdo\bo is run by root and the SUDO_USER environment variable is set,
-       the _\bs_\bu_\bd_\bo_\be_\br_\bs policy will use this value to determine who the actual user
-       is.  This can be used by a user to log commands through sudo even when
-       a root shell has been invoked.  It also allows the -\b-e\be option to remain
-       useful even when invoked via a sudo-run script or program.  Note,
-       however, that the _\bs_\bu_\bd_\bo_\be_\br_\bs lookup is still done for root, not the user
-       specified by SUDO_USER.
-
-       _\bs_\bu_\bd_\bo_\be_\br_\bs uses time stamp files for credential caching.  Once a user has
-       been authenticated, a time stamp is updated and the user may then use
-       sudo without a password for a short period of time (5 minutes unless
-       overridden by the _\bt_\bi_\bm_\be_\bo_\bu_\bt option.  By default, _\bs_\bu_\bd_\bo_\be_\br_\bs uses a tty-based
-       time stamp which means that there is a separate time stamp for each of
-       a user's login sessions.  The _\bt_\bt_\by_\b__\bt_\bi_\bc_\bk_\be_\bt_\bs option can be disabled to
-       force the use of a single time stamp for all of a user's sessions.
-
-       _\bs_\bu_\bd_\bo_\be_\br_\bs can log both successful and unsuccessful attempts (as well as
-       errors) to _\bs_\by_\bs_\bl_\bo_\bg(3), a log file, or both.  By default, _\bs_\bu_\bd_\bo_\be_\br_\bs will
-       log via _\bs_\by_\bs_\bl_\bo_\bg(3) but this is changeable via the _\bs_\by_\bs_\bl_\bo_\bg and _\bl_\bo_\bg_\bf_\bi_\bl_\be
-       Defaults settings.
-
-       _\bs_\bu_\bd_\bo_\be_\br_\bs also supports logging a command's input and output streams.
-       I/O logging is not on by default but can be enabled using the _\bl_\bo_\bg_\b__\bi_\bn_\bp_\bu_\bt
-       and _\bl_\bo_\bg_\b__\bo_\bu_\bt_\bp_\bu_\bt Defaults flags as well as the LOG_INPUT and LOG_OUTPUT
-       command tags.
-
-   C\bCo\bom\bmm\bma\ban\bnd\bd E\bEn\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt
-       Since environment variables can influence program behavior, _\bs_\bu_\bd_\bo_\be_\br_\bs
-       provides a means to restrict which variables from the user's
-       environment are inherited by the command to be run.  There are two
-       distinct ways _\bs_\bu_\bd_\bo_\be_\br_\bs can deal with environment variables.
-
-       By default, the _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt option is enabled.  This causes commands to
-       be executed with a minimal environment containing TERM, PATH, HOME,
-       MAIL, SHELL, LOGNAME, USER and USERNAME in addition to variables from
-       the invoking process permitted by the _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk and _\be_\bn_\bv_\b__\bk_\be_\be_\bp options.
-       This is effectively a whitelist for environment variables.
-
-       If, however, the _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt option is disabled, any variables not
-       explicitly denied by the _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk and _\be_\bn_\bv_\b__\bd_\be_\bl_\be_\bt_\be options are inherited
-       from the invoking process.  In this case, _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk and _\be_\bn_\bv_\b__\bd_\be_\bl_\be_\bt_\be
-       behave like a blacklist.  Since it is not possible to blacklist all
-       potentially dangerous environment variables, use of the default
-       _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt behavior is encouraged.
-
-       In all cases, environment variables with a value beginning with () are
-       removed as they could be interpreted as b\bba\bas\bsh\bh functions.  The list of
-       environment variables that s\bsu\bud\bdo\bo allows or denies is contained in the
-       output of sudo -V when run as root.
-
-       Note that the dynamic linker on most operating systems will remove
-       variables that can control dynamic linking from the environment of
-       setuid executables, including s\bsu\bud\bdo\bo.  Depending on the operating system
-       this may include _RLD*, DYLD_*, LD_*, LDR_*, LIBPATH, SHLIB_PATH, and
-       others.  These type of variables are removed from the environment
-       before s\bsu\bud\bdo\bo even begins execution and, as such, it is not possible for
-       s\bsu\bud\bdo\bo to preserve them.
-
-       As a special case, if s\bsu\bud\bdo\bo's -\b-i\bi option (initial login) is specified,
-       _\bs_\bu_\bd_\bo_\be_\br_\bs will initialize the environment regardless of the value of
-       _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt.  The _\bD_\bI_\bS_\bP_\bL_\bA_\bY, _\bP_\bA_\bT_\bH and _\bT_\bE_\bR_\bM variables remain unchanged;
-       _\bH_\bO_\bM_\bE, _\bM_\bA_\bI_\bL, _\bS_\bH_\bE_\bL_\bL, _\bU_\bS_\bE_\bR, and _\bL_\bO_\bG_\bN_\bA_\bM_\bE are set based on the target user.
-       On Linux and AIX systems the contents of _\b/_\be_\bt_\bc_\b/_\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt are also
-       included.  All other environment variables are removed.
+     The _\bs_\bu_\bd_\bo_\be_\br_\bs policy plugin determines a user's s\bsu\bud\bdo\bo privileges.  It is the
+     default s\bsu\bud\bdo\bo policy plugin.  The policy is driven by the _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs
+     file or, optionally in LDAP.  The policy format is described in detail in
+     the _\bS_\bU_\bD_\bO_\bE_\bR_\bS _\bF_\bI_\bL_\bE _\bF_\bO_\bR_\bM_\bA_\bT section.  For information on storing _\bs_\bu_\bd_\bo_\be_\br_\bs
+     policy information in LDAP, please see sudoers.ldap(4).
+
+   C\bCo\bon\bnf\bfi\big\bgu\bur\bri\bin\bng\bg s\bsu\bud\bdo\bo.\b.c\bco\bon\bnf\bf f\bfo\bor\br s\bsu\bud\bdo\boe\ber\brs\bs
+     s\bsu\bud\bdo\bo consults the sudo.conf(4) file to determine which policy and and I/O
+     logging plugins to load.  If no sudo.conf(4) file is present, or if it
+     contains no Plugin lines, s\bsu\bud\bdo\boe\ber\brs\bs will be used for policy decisions and
+     I/O logging.  To explicitly configure sudo.conf(4) to use the s\bsu\bud\bdo\boe\ber\brs\bs
+     plugin, the following configuration can be used.
+
+           Plugin sudoers_policy sudoers.so
+           Plugin sudoers_io sudoers.so
+
+     Starting with s\bsu\bud\bdo\bo 1.8.5, it is possible to specify optional arguments to
+     the s\bsu\bud\bdo\boe\ber\brs\bs plugin in the sudo.conf(4) file.  These arguments, if
+     present, should be listed after the path to the plugin (i.e. after
+     _\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bs_\bo).  Multiple arguments may be specified, separated by white
+     space.  For example:
+
+           Plugin sudoers_policy sudoers.so sudoers_mode=0400
+
+     The following plugin arguments are supported:
+
+     ldap_conf=pathname
+               The _\bl_\bd_\ba_\bp_\b__\bc_\bo_\bn_\bf argument can be used to override the default path
+               to the _\bl_\bd_\ba_\bp_\b._\bc_\bo_\bn_\bf file.
+
+     ldap_secret=pathname
+               The _\bl_\bd_\ba_\bp_\b__\bs_\be_\bc_\br_\be_\bt argument can be used to override the default
+               path to the _\bl_\bd_\ba_\bp_\b._\bs_\be_\bc_\br_\be_\bt file.
+
+     sudoers_file=pathname
+               The _\bs_\bu_\bd_\bo_\be_\br_\bs_\b__\bf_\bi_\bl_\be argument can be used to override the default
+               path to the _\bs_\bu_\bd_\bo_\be_\br_\bs file.
+
+     sudoers_uid=uid
+               The _\bs_\bu_\bd_\bo_\be_\br_\bs_\b__\bu_\bi_\bd argument can be used to override the default
+               owner of the sudoers file.  It should be specified as a numeric
+               user ID.
+
+     sudoers_gid=gid
+               The _\bs_\bu_\bd_\bo_\be_\br_\bs_\b__\bg_\bi_\bd argument can be used to override the default
+               group of the sudoers file.  It must be specified as a numeric
+               group ID (not a group name).
+
+     sudoers_mode=mode
+               The _\bs_\bu_\bd_\bo_\be_\br_\bs_\b__\bm_\bo_\bd_\be argument can be used to override the default
+               file mode for the sudoers file.  It should be specified as an
+               octal value.
+
+     For more information on configuring sudo.conf(4), please refer to its
+     manual.
+
+   A\bAu\but\bth\bhe\ben\bnt\bti\bic\bca\bat\bti\bio\bon\bn a\ban\bnd\bd l\blo\bog\bgg\bgi\bin\bng\bg
+     The _\bs_\bu_\bd_\bo_\be_\br_\bs security policy requires that most users authenticate
+     themselves before they can use s\bsu\bud\bdo\bo.  A password is not required if the
+     invoking user is root, if the target user is the same as the invoking
+     user, or if the policy has disabled authentication for the user or
+     command.  Unlike su(1), when _\bs_\bu_\bd_\bo_\be_\br_\bs requires authentication, it
+     validates the invoking user's credentials, not the target user's (or
+     root's) credentials.  This can be changed via the _\br_\bo_\bo_\bt_\bp_\bw, _\bt_\ba_\br_\bg_\be_\bt_\bp_\bw and
+     _\br_\bu_\bn_\ba_\bs_\bp_\bw flags, described later.
+
+     If a user who is not listed in the policy tries to run a command via
+     s\bsu\bud\bdo\bo, mail is sent to the proper authorities.  The address used for such
+     mail is configurable via the _\bm_\ba_\bi_\bl_\bt_\bo Defaults entry (described later) and
+     defaults to root.
+
+     Note that mail will not be sent if an unauthorized user tries to run s\bsu\bud\bdo\bo
+     with the -\b-l\bl or -\b-v\bv option.  This allows users to determine for themselves
+     whether or not they are allowed to use s\bsu\bud\bdo\bo.
+
+     If s\bsu\bud\bdo\bo is run by root and the SUDO_USER environment variable is set, the
+     _\bs_\bu_\bd_\bo_\be_\br_\bs policy will use this value to determine who the actual user is.
+     This can be used by a user to log commands through sudo even when a root
+     shell has been invoked.  It also allows the -\b-e\be option to remain useful
+     even when invoked via a sudo-run script or program.  Note, however, that
+     the _\bs_\bu_\bd_\bo_\be_\br_\bs lookup is still done for root, not the user specified by
+     SUDO_USER.
+
+     _\bs_\bu_\bd_\bo_\be_\br_\bs uses time stamp files for credential caching.  Once a user has
+     been authenticated, the time stamp is updated and the user may then use
+     sudo without a password for a short period of time (5 minutes unless
+     overridden by the _\bt_\bi_\bm_\be_\bo_\bu_\bt option).  By default, _\bs_\bu_\bd_\bo_\be_\br_\bs uses a tty-based
+     time stamp which means that there is a separate time stamp for each of a
+     user's login sessions.  The _\bt_\bt_\by_\b__\bt_\bi_\bc_\bk_\be_\bt_\bs option can be disabled to force
+     the use of a single time stamp for all of a user's sessions.
+
+     _\bs_\bu_\bd_\bo_\be_\br_\bs can log both successful and unsuccessful attempts (as well as
+     errors) to syslog(3), a log file, or both.  By default, _\bs_\bu_\bd_\bo_\be_\br_\bs will log
+     via syslog(3) but this is changeable via the _\bs_\by_\bs_\bl_\bo_\bg and _\bl_\bo_\bg_\bf_\bi_\bl_\be Defaults
+     settings.
+
+     _\bs_\bu_\bd_\bo_\be_\br_\bs also supports logging a command's input and output streams.  I/O
+     logging is not on by default but can be enabled using the _\bl_\bo_\bg_\b__\bi_\bn_\bp_\bu_\bt and
+     _\bl_\bo_\bg_\b__\bo_\bu_\bt_\bp_\bu_\bt Defaults flags as well as the LOG_INPUT and LOG_OUTPUT command
+     tags.
+
+   C\bCo\bom\bmm\bma\ban\bnd\bd e\ben\bnv\bvi\bir\bro\bon\bnm\bme\ben\bnt\bt
+     Since environment variables can influence program behavior, _\bs_\bu_\bd_\bo_\be_\br_\bs
+     provides a means to restrict which variables from the user's environment
+     are inherited by the command to be run.  There are two distinct ways
+     _\bs_\bu_\bd_\bo_\be_\br_\bs can deal with environment variables.
+
+     By default, the _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt option is enabled.  This causes commands to be
+     executed with a new, minimal environment.  On AIX (and Linux systems
+     without PAM), the environment is initialized with the contents of the
+     _\b/_\be_\bt_\bc_\b/_\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt file.  On BSD systems, if the _\bu_\bs_\be_\b__\bl_\bo_\bg_\bi_\bn_\bc_\bl_\ba_\bs_\bs option is
+     enabled, the environment is initialized based on the _\bp_\ba_\bt_\bh and _\bs_\be_\bt_\be_\bn_\bv
+     settings in _\b/_\be_\bt_\bc_\b/_\bl_\bo_\bg_\bi_\bn_\b._\bc_\bo_\bn_\bf.  The new environment contains the TERM,
+     PATH, HOME, MAIL, SHELL, LOGNAME, USER, USERNAME and SUDO_* variables in
+     addition to variables from the invoking process permitted by the
+     _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk and _\be_\bn_\bv_\b__\bk_\be_\be_\bp options.  This is effectively a whitelist for
+     environment variables.
+
+     If, however, the _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt option is disabled, any variables not
+     explicitly denied by the _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk and _\be_\bn_\bv_\b__\bd_\be_\bl_\be_\bt_\be options are inherited
+     from the invoking process.  In this case, _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk and _\be_\bn_\bv_\b__\bd_\be_\bl_\be_\bt_\be behave
+     like a blacklist.  Since it is not possible to blacklist all potentially
+     dangerous environment variables, use of the default _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt behavior is
+     encouraged.
+
+     In all cases, environment variables with a value beginning with () are
+     removed as they could be interpreted as b\bba\bas\bsh\bh functions.  The list of
+     environment variables that s\bsu\bud\bdo\bo allows or denies is contained in the
+     output of ``sudo -V'' when run as root.
+
+     Note that the dynamic linker on most operating systems will remove
+     variables that can control dynamic linking from the environment of setuid
+     executables, including s\bsu\bud\bdo\bo.  Depending on the operating system this may
+     include _RLD*, DYLD_*, LD_*, LDR_*, LIBPATH, SHLIB_PATH, and others.
+     These type of variables are removed from the environment before s\bsu\bud\bdo\bo even
+     begins execution and, as such, it is not possible for s\bsu\bud\bdo\bo to preserve
+     them.
+
+     As a special case, if s\bsu\bud\bdo\bo's -\b-i\bi option (initial login) is specified,
+     _\bs_\bu_\bd_\bo_\be_\br_\bs will initialize the environment regardless of the value of
+     _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt.  The DISPLAY, PATH and TERM variables remain unchanged; HOME,
+     MAIL, SHELL, USER, and LOGNAME are set based on the target user.  On AIX
+     (and Linux systems without PAM), the contents of _\b/_\be_\bt_\bc_\b/_\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt are
+     also included.  On BSD systems, if the _\bu_\bs_\be_\b__\bl_\bo_\bg_\bi_\bn_\bc_\bl_\ba_\bs_\bs option is enabled,
+     the _\bp_\ba_\bt_\bh and _\bs_\be_\bt_\be_\bn_\bv variables in _\b/_\be_\bt_\bc_\b/_\bl_\bo_\bg_\bi_\bn_\b._\bc_\bo_\bn_\bf are also applied.  All
+     other environment variables are removed.
+
+     Finally, if the _\be_\bn_\bv_\b__\bf_\bi_\bl_\be option is defined, any variables present in that
+     file will be set to their specified values as long as they would not
+     conflict with an existing environment variable.
 
 S\bSU\bUD\bDO\bOE\bER\bRS\bS F\bFI\bIL\bLE\bE F\bFO\bOR\bRM\bMA\bAT\bT
-       The _\bs_\bu_\bd_\bo_\be_\br_\bs file is composed of two types of entries: aliases
-       (basically variables) and user specifications (which specify who may
-       run what).
+     The _\bs_\bu_\bd_\bo_\be_\br_\bs file is composed of two types of entries: aliases (basically
+     variables) and user specifications (which specify who may run what).
 
-       When multiple entries match for a user, they are applied in order.
-       Where there are multiple matches, the last match is used (which is not
-       necessarily the most specific match).
+     When multiple entries match for a user, they are applied in order.  Where
+     there are multiple matches, the last match is used (which is not
+     necessarily the most specific match).
 
-       The _\bs_\bu_\bd_\bo_\be_\br_\bs grammar will be described below in Extended Backus-Naur
-       Form (EBNF).  Don't despair if you don't know what EBNF is; it is
-       fairly simple, and the definitions below are annotated.
+     The _\bs_\bu_\bd_\bo_\be_\br_\bs grammar will be described below in Extended Backus-Naur Form
+     (EBNF).  Don't despair if you are unfamiliar with EBNF; it is fairly
+     simple, and the definitions below are annotated.
 
    Q\bQu\bui\bic\bck\bk g\bgu\bui\bid\bde\be t\bto\bo E\bEB\bBN\bNF\bF
-       EBNF is a concise and exact way of describing the grammar of a
-       language.  Each EBNF definition is made up of _\bp_\br_\bo_\bd_\bu_\bc_\bt_\bi_\bo_\bn _\br_\bu_\bl_\be_\bs.  E.g.,
+     EBNF is a concise and exact way of describing the grammar of a language.
+     Each EBNF definition is made up of _\bp_\br_\bo_\bd_\bu_\bc_\bt_\bi_\bo_\bn _\br_\bu_\bl_\be_\bs.  E.g.,
 
-        symbol ::= definition | alternate1 | alternate2 ...
+     symbol ::= definition | alternate1 | alternate2 ...
 
-       Each _\bp_\br_\bo_\bd_\bu_\bc_\bt_\bi_\bo_\bn _\br_\bu_\bl_\be references others and thus makes up a grammar for
-       the language.  EBNF also contains the following operators, which many
-       readers will recognize from regular expressions.  Do not, however,
-       confuse them with "wildcard" characters, which have different meanings.
+     Each _\bp_\br_\bo_\bd_\bu_\bc_\bt_\bi_\bo_\bn _\br_\bu_\bl_\be references others and thus makes up a grammar for
+     the language.  EBNF also contains the following operators, which many
+     readers will recognize from regular expressions.  Do not, however,
+     confuse them with ``wildcard'' characters, which have different meanings.
 
-       ?   Means that the preceding symbol (or group of symbols) is optional.
+     ?     Means that the preceding symbol (or group of symbols) is optional.
            That is, it may appear once or not at all.
 
-       *   Means that the preceding symbol (or group of symbols) may appear
+     *     Means that the preceding symbol (or group of symbols) may appear
            zero or more times.
 
-       +   Means that the preceding symbol (or group of symbols) may appear
+     +     Means that the preceding symbol (or group of symbols) may appear
            one or more times.
 
-       Parentheses may be used to group symbols together.  For clarity, we
-       will use single quotes ('') to designate what is a verbatim character
-       string (as opposed to a symbol name).
+     Parentheses may be used to group symbols together.  For clarity, we will
+     use single quotes ('') to designate what is a verbatim character string
+     (as opposed to a symbol name).
 
    A\bAl\bli\bia\bas\bse\bes\bs
-       There are four kinds of aliases: User_Alias, Runas_Alias, Host_Alias
-       and Cmnd_Alias.
+     There are four kinds of aliases: User_Alias, Runas_Alias, Host_Alias and
+     Cmnd_Alias.
+
+     Alias ::= 'User_Alias'  User_Alias (':' User_Alias)* |
+               'Runas_Alias' Runas_Alias (':' Runas_Alias)* |
+               'Host_Alias'  Host_Alias (':' Host_Alias)* |
+               'Cmnd_Alias'  Cmnd_Alias (':' Cmnd_Alias)*
 
-        Alias ::= 'User_Alias'  User_Alias (':' User_Alias)* |
-                  'Runas_Alias' Runas_Alias (':' Runas_Alias)* |
-                  'Host_Alias'  Host_Alias (':' Host_Alias)* |
-                  'Cmnd_Alias'  Cmnd_Alias (':' Cmnd_Alias)*
-
-        User_Alias ::= NAME '=' User_List
-
-        Runas_Alias ::= NAME '=' Runas_List
-
-        Host_Alias ::= NAME '=' Host_List
-
-        Cmnd_Alias ::= NAME '=' Cmnd_List
-
-        NAME ::= [A-Z]([A-Z][0-9]_)*
-
-       Each _\ba_\bl_\bi_\ba_\bs definition is of the form
-
-        Alias_Type NAME = item1, item2, ...
-
-       where _\bA_\bl_\bi_\ba_\bs_\b__\bT_\by_\bp_\be is one of User_Alias, Runas_Alias, Host_Alias, or
-       Cmnd_Alias.  A NAME is a string of uppercase letters, numbers, and
-       underscore characters ('_').  A NAME m\bmu\bus\bst\bt start with an uppercase
-       letter.  It is possible to put several alias definitions of the same
-       type on a single line, joined by a colon (':').  E.g.,
-
-        Alias_Type NAME = item1, item2, item3 : NAME = item4, item5
-
-       The definitions of what constitutes a valid _\ba_\bl_\bi_\ba_\bs member follow.
-
-        User_List ::= User |
-                      User ',' User_List
-
-        User ::= '!'* user name |
-                 '!'* #uid |
-                 '!'* %group |
-                 '!'* %#gid |
-                 '!'* +netgroup |
-                 '!'* %:nonunix_group |
-                 '!'* %:#nonunix_gid |
-                 '!'* User_Alias
-
-       A User_List is made up of one or more user names, user ids (prefixed
-       with '#'), system group names and ids (prefixed with '%' and '%#'
-       respectively), netgroups (prefixed with '+'), non-Unix group names and
-       IDs (prefixed with '%:' and '%:#' respectively) and User_Aliases.  Each
-       list item may be prefixed with zero or more '!' operators.  An odd
-       number of '!' operators negate the value of the item; an even number
-       just cancel each other out.
-
-       A user name, uid, group, gid, netgroup, nonunix_group or nonunix_gid
-       may be enclosed in double quotes to avoid the need for escaping special
-       characters.  Alternately, special characters may be specified in
-       escaped hex mode, e.g. \x20 for space.  When using double quotes, any
-       prefix characters must be included inside the quotes.
-
-       The actual nonunix_group and nonunix_gid syntax depends on the
-       underlying group provider plugin (see the _\bg_\br_\bo_\bu_\bp_\b__\bp_\bl_\bu_\bg_\bi_\bn description
-       below).  For instance, the QAS AD plugin supports the following
-       formats:
-
-       +\bo   Group in the same domain: "Group Name"
-
-       +\bo   Group in any domain: "Group Name@FULLY.QUALIFIED.DOMAIN"
-
-       +\bo   Group SID: "S-1-2-34-5678901234-5678901234-5678901234-567"
-
-       Note that quotes around group names are optional.  Unquoted strings
-       must use a backslash (\) to escape spaces and special characters.  See
-       "Other special characters and reserved words" for a list of characters
-       that need to be escaped.
-
-        Runas_List ::= Runas_Member |
-                       Runas_Member ',' Runas_List
-
-        Runas_Member ::= '!'* user name |
-                         '!'* #uid |
-                         '!'* %group |
-                         '!'* %#gid |
-                         '!'* %:nonunix_group |
-                         '!'* %:#nonunix_gid |
-                         '!'* +netgroup |
-                         '!'* Runas_Alias
-
-       A Runas_List is similar to a User_List except that instead of
-       User_Aliases it can contain Runas_Aliases.  Note that user names and
-       groups are matched as strings.  In other words, two users (groups) with
-       the same uid (gid) are considered to be distinct.  If you wish to match
-       all user names with the same uid (e.g. root and toor), you can use a
-       uid instead (#0 in the example given).
-
-        Host_List ::= Host |
-                      Host ',' Host_List
-
-        Host ::= '!'* host name |
-                 '!'* ip_addr |
-                 '!'* network(/netmask)? |
-                 '!'* +netgroup |
-                 '!'* Host_Alias
-
-       A Host_List is made up of one or more host names, IP addresses, network
-       numbers, netgroups (prefixed with '+') and other aliases.  Again, the
-       value of an item may be negated with the '!' operator.  If you do not
-       specify a netmask along with the network number, s\bsu\bud\bdo\bo will query each
-       of the local host's network interfaces and, if the network number
-       corresponds to one of the hosts's network interfaces, the corresponding
-       netmask will be used.  The netmask may be specified either in standard
-       IP address notation (e.g. 255.255.255.0 or ffff:ffff:ffff:ffff::), or
-       CIDR notation (number of bits, e.g. 24 or 64).  A host name may include
-       shell-style wildcards (see the Wildcards section below), but unless the
-       host name command on your machine returns the fully qualified host
-       name, you'll need to use the _\bf_\bq_\bd_\bn option for wildcards to be useful.
-       Note s\bsu\bud\bdo\bo only inspects actual network interfaces; this means that IP
-       address 127.0.0.1 (localhost) will never match.  Also, the host name
-       "localhost" will only match if that is the actual host name, which is
-       usually only the case for non-networked systems.
-
-        Cmnd_List ::= Cmnd |
-                      Cmnd ',' Cmnd_List
-
-        commandname ::= file name |
-                        file name args |
-                        file name '""'
-
-        Cmnd ::= '!'* commandname |
-                 '!'* directory |
-                 '!'* "sudoedit" |
-                 '!'* Cmnd_Alias
-
-       A Cmnd_List is a list of one or more commandnames, directories, and
-       other aliases.  A commandname is a fully qualified file name which may
-       include shell-style wildcards (see the Wildcards section below).  A
-       simple file name allows the user to run the command with any arguments
-       he/she wishes.  However, you may also specify command line arguments
-       (including wildcards).  Alternately, you can specify "" to indicate
-       that the command may only be run w\bwi\bit\bth\bho\bou\but\bt command line arguments.  A
-       directory is a fully qualified path name ending in a '/'.  When you
-       specify a directory in a Cmnd_List, the user will be able to run any
-       file within that directory (but not in any subdirectories therein).
-
-       If a Cmnd has associated command line arguments, then the arguments in
-       the Cmnd must match exactly those given by the user on the command line
-       (or match the wildcards if there are any).  Note that the following
-       characters must be escaped with a '\' if they are used in command
-       arguments: ',', ':', '=', '\'.  The special command "sudoedit" is used
-       to permit a user to run s\bsu\bud\bdo\bo with the -\b-e\be option (or as s\bsu\bud\bdo\boe\bed\bdi\bit\bt).  It
-       may take command line arguments just as a normal command does.
+     User_Alias ::= NAME '=' User_List
+
+     Runas_Alias ::= NAME '=' Runas_List
+
+     Host_Alias ::= NAME '=' Host_List
+
+     Cmnd_Alias ::= NAME '=' Cmnd_List
+
+     NAME ::= [A-Z]([A-Z][0-9]_)*
+
+     Each _\ba_\bl_\bi_\ba_\bs definition is of the form
+
+     Alias_Type NAME = item1, item2, ...
+
+     where _\bA_\bl_\bi_\ba_\bs_\b__\bT_\by_\bp_\be is one of User_Alias, Runas_Alias, Host_Alias, or
+     Cmnd_Alias.  A NAME is a string of uppercase letters, numbers, and
+     underscore characters (`_').  A NAME m\bmu\bus\bst\bt start with an uppercase letter.
+     It is possible to put several alias definitions of the same type on a
+     single line, joined by a colon (`:').  E.g.,
+
+     Alias_Type NAME = item1, item2, item3 : NAME = item4, item5
+
+     The definitions of what constitutes a valid _\ba_\bl_\bi_\ba_\bs member follow.
+
+     User_List ::= User |
+                   User ',' User_List
+
+     User ::= '!'* user name |
+              '!'* #uid |
+              '!'* %group |
+              '!'* %#gid |
+              '!'* +netgroup |
+              '!'* %:nonunix_group |
+              '!'* %:#nonunix_gid |
+              '!'* User_Alias
+
+     A User_List is made up of one or more user names, user IDs (prefixed with
+     `#'), system group names and IDs (prefixed with `%' and `%#'
+     respectively), netgroups (prefixed with `+'), non-Unix group names and
+     IDs (prefixed with `%:' and `%:#' respectively) and User_Aliases. Each
+     list item may be prefixed with zero or more `!' operators.  An odd number
+     of `!' operators negate the value of the item; an even number just cancel
+     each other out.
+
+     A user name, uid, group, gid, netgroup, nonunix_group or nonunix_gid may
+     be enclosed in double quotes to avoid the need for escaping special
+     characters.  Alternately, special characters may be specified in escaped
+     hex mode, e.g. \x20 for space.  When using double quotes, any prefix
+     characters must be included inside the quotes.
+
+     The actual nonunix_group and nonunix_gid syntax depends on the underlying
+     group provider plugin.  For instance, the QAS AD plugin supports the
+     following formats:
+
+     o\bo     Group in the same domain: "%:Group Name"
+
+     o\bo     Group in any domain: "%:Group Name@FULLY.QUALIFIED.DOMAIN"
+
+     o\bo     Group SID: "%:S-1-2-34-5678901234-5678901234-5678901234-567"
+
+     See _\bG_\bR_\bO_\bU_\bP _\bP_\bR_\bO_\bV_\bI_\bD_\bE_\bR _\bP_\bL_\bU_\bG_\bI_\bN_\bS for more information.
+
+     Note that quotes around group names are optional.  Unquoted strings must
+     use a backslash (`\') to escape spaces and special characters.  See _\bO_\bt_\bh_\be_\br
+     _\bs_\bp_\be_\bc_\bi_\ba_\bl _\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs _\ba_\bn_\bd _\br_\be_\bs_\be_\br_\bv_\be_\bd _\bw_\bo_\br_\bd_\bs for a list of characters that need
+     to be escaped.
+
+     Runas_List ::= Runas_Member |
+                    Runas_Member ',' Runas_List
+
+     Runas_Member ::= '!'* user name |
+                      '!'* #uid |
+                      '!'* %group |
+                      '!'* %#gid |
+                      '!'* %:nonunix_group |
+                      '!'* %:#nonunix_gid |
+                      '!'* +netgroup |
+                      '!'* Runas_Alias
+
+     A Runas_List is similar to a User_List except that instead of
+     User_Aliases it can contain Runas_Aliases.  Note that user names and
+     groups are matched as strings.  In other words, two users (groups) with
+     the same uid (gid) are considered to be distinct.  If you wish to match
+     all user names with the same uid (e.g. root and toor), you can use a uid
+     instead (#0 in the example given).
+
+     Host_List ::= Host |
+                   Host ',' Host_List
+
+     Host ::= '!'* host name |
+              '!'* ip_addr |
+              '!'* network(/netmask)? |
+              '!'* +netgroup |
+              '!'* Host_Alias
+
+     A Host_List is made up of one or more host names, IP addresses, network
+     numbers, netgroups (prefixed with `+') and other aliases.  Again, the
+     value of an item may be negated with the `!' operator.  If you do not
+     specify a netmask along with the network number, s\bsu\bud\bdo\bo will query each of
+     the local host's network interfaces and, if the network number
+     corresponds to one of the hosts's network interfaces, the corresponding
+     netmask will be used.  The netmask may be specified either in standard IP
+     address notation (e.g. 255.255.255.0 or ffff:ffff:ffff:ffff::), or CIDR
+     notation (number of bits, e.g. 24 or 64).  A host name may include shell-
+     style wildcards (see the _\bW_\bi_\bl_\bd_\bc_\ba_\br_\bd_\bs section below), but unless the host
+     name command on your machine returns the fully qualified host name,
+     you'll need to use the _\bf_\bq_\bd_\bn option for wildcards to be useful.  Note that
+     s\bsu\bud\bdo\bo only inspects actual network interfaces; this means that IP address
+     127.0.0.1 (localhost) will never match.  Also, the host name
+     ``localhost'' will only match if that is the actual host name, which is
+     usually only the case for non-networked systems.
+
+     digest ::= [A-Fa-f0-9]+ |
+                [[A-Za-z0-9+/=]+
+
+     Digest_Spec ::= "sha224" ':' digest |
+                     "sha256" ':' digest |
+                     "sha384" ':' digest |
+                     "sha512" ':' digest
+
+     Cmnd_List ::= Cmnd |
+                   Cmnd ',' Cmnd_List
+
+     command name ::= file name |
+                      file name args |
+                      file name '""'
+
+     Cmnd ::= Digest_Spec? '!'* command name |
+              '!'* directory |
+              '!'* "sudoedit" |
+              '!'* Cmnd_Alias
+
+     A Cmnd_List is a list of one or more command names, directories, and
+     other aliases.  A command name is a fully qualified file name which may
+     include shell-style wildcards (see the _\bW_\bi_\bl_\bd_\bc_\ba_\br_\bd_\bs section below).  A
+     simple file name allows the user to run the command with any arguments
+     he/she wishes.  However, you may also specify command line arguments
+     (including wildcards).  Alternately, you can specify "" to indicate that
+     the command may only be run w\bwi\bit\bth\bho\bou\but\bt command line arguments.  A directory
+     is a fully qualified path name ending in a `/'.  When you specify a
+     directory in a Cmnd_List, the user will be able to run any file within
+     that directory (but not in any sub-directories therein).
+
+     If a Cmnd has associated command line arguments, then the arguments in
+     the Cmnd must match exactly those given by the user on the command line
+     (or match the wildcards if there are any).  Note that the following
+     characters must be escaped with a `\' if they are used in command
+     arguments: `,', `:', `=', `\'.  The built-in command ``sudoedit'' is used
+     to permit a user to run s\bsu\bud\bdo\bo with the -\b-e\be option (or as s\bsu\bud\bdo\boe\bed\bdi\bit\bt).  It may
+     take command line arguments just as a normal command does.  Note that
+     ``sudoedit'' is a command built into s\bsu\bud\bdo\bo itself and must be specified in
+     _\bs_\bu_\bd_\bo_\be_\br_\bs without a leading path.
+
+     If a command name is prefixed with a Digest_Spec, the command will only
+     match successfully if it can be verified using the specified SHA-2
+     digest.  This may be useful in situations where the user invoking s\bsu\bud\bdo\bo
+     has write access to the command or its parent directory.  The following
+     digest formats are supported: sha224, sha256, sha384 and sha512.  The
+     string may be specified in either hex or base64 format (base64 is more
+     compact).  There are several utilities capable of generating SHA-2
+     digests in hex format such as openssl, shasum, sha224sum, sha256sum,
+     sha384sum, sha512sum.
+
+     For example, using openssl:
+
+     $ openssl dgst -sha224 /bin/ls
+     SHA224(/bin/ls)= 118187da8364d490b4a7debbf483004e8f3e053ec954309de2c41a25
+
+     It is also possible to use openssl to generate base64 output:
+
+     $ openssl dgst -binary -sha224 /bin/ls | openssl base64
+     EYGH2oNk1JC0p9679IMATo8+BT7JVDCd4sQaJQ==
+
+     Command digests are only supported by version 1.8.7 or higher.
 
    D\bDe\bef\bfa\bau\bul\blt\bts\bs
-       Certain configuration options may be changed from their default values
-       at runtime via one or more Default_Entry lines.  These may affect all
-       users on any host, all users on a specific host, a specific user, a
-       specific command, or commands being run as a specific user.  Note that
-       per-command entries may not include command line arguments.  If you
-       need to specify arguments, define a Cmnd_Alias and reference that
-       instead.
+     Certain configuration options may be changed from their default values at
+     run-time via one or more Default_Entry lines.  These may affect all users
+     on any host, all users on a specific host, a specific user, a specific
+     command, or commands being run as a specific user.  Note that per-command
+     entries may not include command line arguments.  If you need to specify
+     arguments, define a Cmnd_Alias and reference that instead.
+
+     Default_Type ::= 'Defaults' |
+                      'Defaults' '@' Host_List |
+                      'Defaults' ':' User_List |
+                      'Defaults' '!' Cmnd_List |
+                      'Defaults' '>' Runas_List
 
-        Default_Type ::= 'Defaults' |
-                         'Defaults' '@' Host_List |
-                         'Defaults' ':' User_List |
-                         'Defaults' '!' Cmnd_List |
-                         'Defaults' '>' Runas_List
+     Default_Entry ::= Default_Type Parameter_List
 
-        Default_Entry ::= Default_Type Parameter_List
+     Parameter_List ::= Parameter |
+                        Parameter ',' Parameter_List
 
-        Parameter_List ::= Parameter |
-                           Parameter ',' Parameter_List
+     Parameter ::= Parameter '=' Value |
+                   Parameter '+=' Value |
+                   Parameter '-=' Value |
+                   '!'* Parameter
 
-        Parameter ::= Parameter '=' Value |
-                      Parameter '+=' Value |
-                      Parameter '-=' Value |
-                      '!'* Parameter
+     Parameters may be f\bfl\bla\bag\bgs\bs, i\bin\bnt\bte\beg\bge\ber\br values, s\bst\btr\bri\bin\bng\bgs\bs, or l\bli\bis\bst\bts\bs.  Flags are
+     implicitly boolean and can be turned off via the `!' operator.  Some
+     integer, string and list parameters may also be used in a boolean context
+     to disable them.  Values may be enclosed in double quotes ("") when they
+     contain multiple words.  Special characters may be escaped with a
+     backslash (`\').
 
-       Parameters may be f\bfl\bla\bag\bgs\bs, i\bin\bnt\bte\beg\bge\ber\br values, s\bst\btr\bri\bin\bng\bgs\bs, or l\bli\bis\bst\bts\bs.  Flags are
-       implicitly boolean and can be turned off via the '!'  operator.  Some
-       integer, string and list parameters may also be used in a boolean
-       context to disable them.  Values may be enclosed in double quotes (")
-       when they contain multiple words.  Special characters may be escaped
-       with a backslash (\).
+     Lists have two additional assignment operators, += and -=.  These
+     operators are used to add to and delete from a list respectively.  It is
+     not an error to use the -= operator to remove an element that does not
+     exist in a list.
 
-       Lists have two additional assignment operators, += and -=.  These
-       operators are used to add to and delete from a list respectively.  It
-       is not an error to use the -= operator to remove an element that does
-       not exist in a list.
+     Defaults entries are parsed in the following order: generic, host and
+     user Defaults first, then runas Defaults and finally command defaults.
 
-       Defaults entries are parsed in the following order: generic, host and
-       user Defaults first, then runas Defaults and finally command defaults.
+     See _\bS_\bU_\bD_\bO_\bE_\bR_\bS _\bO_\bP_\bT_\bI_\bO_\bN_\bS for a list of supported Defaults parameters.
 
-       See "SUDOERS OPTIONS" for a list of supported Defaults parameters.
+   U\bUs\bse\ber\br s\bsp\bpe\bec\bci\bif\bfi\bic\bca\bat\bti\bio\bon\bn
+     User_Spec ::= User_List Host_List '=' Cmnd_Spec_List \
+                   (':' Host_List '=' Cmnd_Spec_List)*
 
-   U\bUs\bse\ber\br S\bSp\bpe\bec\bci\bif\bfi\bic\bca\bat\bti\bio\bon\bn
-        User_Spec ::= User_List Host_List '=' Cmnd_Spec_List \
-                      (':' Host_List '=' Cmnd_Spec_List)*
+     Cmnd_Spec_List ::= Cmnd_Spec |
+                        Cmnd_Spec ',' Cmnd_Spec_List
 
-        Cmnd_Spec_List ::= Cmnd_Spec |
-                           Cmnd_Spec ',' Cmnd_Spec_List
+     Cmnd_Spec ::= Runas_Spec? SELinux_Spec? Solaris_Priv_Spec? Tag_Spec* Cmnd
 
-        Cmnd_Spec ::= Runas_Spec? SELinux_Spec? Tag_Spec* Cmnd
+     Runas_Spec ::= '(' Runas_List? (':' Runas_List)? ')'
 
-        Runas_Spec ::= '(' Runas_List? (':' Runas_List)? ')'
+     SELinux_Spec ::= ('ROLE=role' | 'TYPE=type')
 
-        SELinux_Spec ::= ('ROLE=role' | 'TYPE=type')
+     Solaris_Priv_Spec ::= ('PRIVS=privset' | 'LIMITPRIVS=privset')
 
-        Tag_Spec ::= ('NOPASSWD:' | 'PASSWD:' | 'NOEXEC:' | 'EXEC:' |
-                      'SETENV:' | 'NOSETENV:' | 'LOG_INPUT:' | 'NOLOG_INPUT:' |
-                      'LOG_OUTPUT:' | 'NOLOG_OUTPUT:')
+     Tag_Spec ::= ('NOPASSWD:' | 'PASSWD:' | 'NOEXEC:' | 'EXEC:' |
+                   'SETENV:' | 'NOSETENV:' | 'LOG_INPUT:' | 'NOLOG_INPUT:' |
+                   'LOG_OUTPUT:' | 'NOLOG_OUTPUT:')
 
-       A u\bus\bse\ber\br s\bsp\bpe\bec\bci\bif\bfi\bic\bca\bat\bti\bio\bon\bn determines which commands a user may run (and as
-       what user) on specified hosts.  By default, commands are run as r\bro\boo\bot\bt,
-       but this can be changed on a per-command basis.
+     A u\bus\bse\ber\br s\bsp\bpe\bec\bci\bif\bfi\bic\bca\bat\bti\bio\bon\bn determines which commands a user may run (and as
+     what user) on specified hosts.  By default, commands are run as r\bro\boo\bot\bt, but
+     this can be changed on a per-command basis.
 
-       The basic structure of a user specification is `who where = (as_whom)
-       what'.  Let's break that down into its constituent parts:
+     The basic structure of a user specification is ``who where = (as_whom)
+     what''.  Let's break that down into its constituent parts:
 
    R\bRu\bun\bna\bas\bs_\b_S\bSp\bpe\bec\bc
-       A Runas_Spec determines the user and/or the group that a command may be
-       run as.  A fully-specified Runas_Spec consists of two Runas_Lists (as
-       defined above) separated by a colon (':') and enclosed in a set of
-       parentheses.  The first Runas_List indicates which users the command
-       may be run as via s\bsu\bud\bdo\bo's -\b-u\bu option.  The second defines a list of
-       groups that can be specified via s\bsu\bud\bdo\bo's -\b-g\bg option.  If both Runas_Lists
-       are specified, the command may be run with any combination of users and
-       groups listed in their respective Runas_Lists.  If only the first is
-       specified, the command may be run as any user in the list but no -\b-g\bg
-       option may be specified.  If the first Runas_List is empty but the
-       second is specified, the command may be run as the invoking user with
-       the group set to any listed in the Runas_List.  If no Runas_Spec is
-       specified the command may be run as r\bro\boo\bot\bt and no group may be specified.
+     A Runas_Spec determines the user and/or the group that a command may be
+     run as.  A fully-specified Runas_Spec consists of two Runas_Lists (as
+     defined above) separated by a colon (`:') and enclosed in a set of
+     parentheses.  The first Runas_List indicates which users the command may
+     be run as via s\bsu\bud\bdo\bo's -\b-u\bu option.  The second defines a list of groups that
+     can be specified via s\bsu\bud\bdo\bo's -\b-g\bg option.  If both Runas_Lists are
+     specified, the command may be run with any combination of users and
+     groups listed in their respective Runas_Lists. If only the first is
+     specified, the command may be run as any user in the list but no -\b-g\bg
+     option may be specified.  If the first Runas_List is empty but the second
+     is specified, the command may be run as the invoking user with the group
+     set to any listed in the Runas_List.  If both Runas_Lists are empty, the
+     command may only be run as the invoking user.  If no Runas_Spec is
+     specified the command may be run as r\bro\boo\bot\bt and no group may be specified.
 
-       A Runas_Spec sets the default for the commands that follow it.  What
-       this means is that for the entry:
+     A Runas_Spec sets the default for the commands that follow it.  What this
+     means is that for the entry:
 
-        dgb    boulder = (operator) /bin/ls, /bin/kill, /usr/bin/lprm
+     dgb     boulder = (operator) /bin/ls, /bin/kill, /usr/bin/lprm
 
-       The user d\bdg\bgb\bb may run _\b/_\bb_\bi_\bn_\b/_\bl_\bs, _\b/_\bb_\bi_\bn_\b/_\bk_\bi_\bl_\bl, and _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bl_\bp_\br_\bm -- but only
-       as o\bop\bpe\ber\bra\bat\bto\bor\br.  E.g.,
+     The user d\bdg\bgb\bb may run _\b/_\bb_\bi_\bn_\b/_\bl_\bs, _\b/_\bb_\bi_\bn_\b/_\bk_\bi_\bl_\bl, and _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bl_\bp_\br_\bm--but only as
+     o\bop\bpe\ber\bra\bat\bto\bor\br.  E.g.,
 
-        $ sudo -u operator /bin/ls
+     $ sudo -u operator /bin/ls
 
-       It is also possible to override a Runas_Spec later on in an entry.  If
-       we modify the entry like so:
+     It is also possible to override a Runas_Spec later on in an entry.  If we
+     modify the entry like so:
 
-        dgb    boulder = (operator) /bin/ls, (root) /bin/kill, /usr/bin/lprm
+     dgb     boulder = (operator) /bin/ls, (root) /bin/kill, /usr/bin/lprm
 
-       Then user d\bdg\bgb\bb is now allowed to run _\b/_\bb_\bi_\bn_\b/_\bl_\bs as o\bop\bpe\ber\bra\bat\bto\bor\br, but  _\b/_\bb_\bi_\bn_\b/_\bk_\bi_\bl_\bl
-       and _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bl_\bp_\br_\bm as r\bro\boo\bot\bt.
+     Then user d\bdg\bgb\bb is now allowed to run _\b/_\bb_\bi_\bn_\b/_\bl_\bs as o\bop\bpe\ber\bra\bat\bto\bor\br, but _\b/_\bb_\bi_\bn_\b/_\bk_\bi_\bl_\bl
+     and _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bl_\bp_\br_\bm as r\bro\boo\bot\bt.
 
-       We can extend this to allow d\bdg\bgb\bb to run /bin/ls with either the user or
-       group set to o\bop\bpe\ber\bra\bat\bto\bor\br:
+     We can extend this to allow d\bdg\bgb\bb to run /bin/ls with either the user or
+     group set to o\bop\bpe\ber\bra\bat\bto\bor\br:
 
-        dgb    boulder = (operator : operator) /bin/ls, (root) /bin/kill, \
-               /usr/bin/lprm
+     dgb     boulder = (operator : operator) /bin/ls, (root) /bin/kill,\
+             /usr/bin/lprm
 
-       Note that while the group portion of the Runas_Spec permits the user to
-       run as command with that group, it does not force the user to do so.
-       If no group is specified on the command line, the command will run with
-       the group listed in the target user's password database entry.  The
-       following would all be permitted by the sudoers entry above:
+     Note that while the group portion of the Runas_Spec permits the user to
+     run as command with that group, it does not force the user to do so.  If
+     no group is specified on the command line, the command will run with the
+     group listed in the target user's password database entry.  The following
+     would all be permitted by the sudoers entry above:
 
-        $ sudo -u operator /bin/ls
-        $ sudo -u operator -g operator /bin/ls
-        $ sudo -g operator /bin/ls
+     $ sudo -u operator /bin/ls
+     $ sudo -u operator -g operator /bin/ls
+     $ sudo -g operator /bin/ls
 
-       In the following example, user t\btc\bcm\bm may run commands that access a modem
-       device file with the dialer group.
+     In the following example, user t\btc\bcm\bm may run commands that access a modem
+     device file with the dialer group.
 
-        tcm    boulder = (:dialer) /usr/bin/tip, /usr/bin/cu, \
-               /usr/local/bin/minicom
+     tcm     boulder = (:dialer) /usr/bin/tip, /usr/bin/cu,\
+             /usr/local/bin/minicom
 
-       Note that in this example only the group will be set, the command still
-       runs as user t\btc\bcm\bm.  E.g.
+     Note that in this example only the group will be set, the command still
+     runs as user t\btc\bcm\bm.  E.g.
 
-        $ sudo -g dialer /usr/bin/cu
+     $ sudo -g dialer /usr/bin/cu
 
-       Multiple users and groups may be present in a Runas_Spec, in which case
-       the user may select any combination of users and groups via the -\b-u\bu and
-       -\b-g\boptions.  In this example:
+     Multiple users and groups may be present in a Runas_Spec, in which case
+     the user may select any combination of users and groups via the -\b-u\bu and -\b-g\bg
+     options.  In this example:
 
-        alan   ALL = (root, bin : operator, system) ALL
+     alan    ALL = (root, bin : operator, system) ALL
 
-       user a\bal\bla\ban\bn may run any command as either user root or bin, optionally
-       setting the group to operator or system.
+     user a\bal\bla\ban\bn may run any command as either user root or bin, optionally
+     setting the group to operator or system.
 
    S\bSE\bEL\bLi\bin\bnu\bux\bx_\b_S\bSp\bpe\bec\bc
-       On systems with SELinux support, _\bs_\bu_\bd_\bo_\be_\br_\bs entries may optionally have an
-       SELinux role and/or type associated with a command.  If a role or type
-       is specified with the command it will override any default values
-       specified in _\bs_\bu_\bd_\bo_\be_\br_\bs.  A role or type specified on the command line,
-       however, will supercede the values in _\bs_\bu_\bd_\bo_\be_\br_\bs.
+     On systems with SELinux support, _\bs_\bu_\bd_\bo_\be_\br_\bs entries may optionally have an
+     SELinux role and/or type associated with a command.  If a role or type is
+     specified with the command it will override any default values specified
+     in _\bs_\bu_\bd_\bo_\be_\br_\bs.  A role or type specified on the command line, however, will
+     supersede the values in _\bs_\bu_\bd_\bo_\be_\br_\bs.
+
+   S\bSo\bol\bla\bar\bri\bis\bs_\b_P\bPr\bri\biv\bv_\b_S\bSp\bpe\bec\bc
+     On Solaris systems, _\bs_\bu_\bd_\bo_\be_\br_\bs entries may optionally specify Solaris
+     privilege set and/or limit privilege set associated with a command.  If
+     privileges or limit privileges are specified with the command it will
+     override any default values specified in _\bs_\bu_\bd_\bo_\be_\br_\bs.
+
+     A privilege set is a comma-separated list of privilege names.  The
+     ppriv(1) command can be used to list all privileges known to the system.
+     For example:
+
+     $ ppriv -l
+
+     In addition, there are several ``special'' privilege strings:
+
+     none      the empty set
+
+     all       the set of all privileges
+
+     zone      the set of all privileges available in the current zone
+
+     basic     the default set of privileges normal users are granted at login
+               time
+
+     Privileges can be excluded from a set by prefixing the privilege name
+     with either an `!' or `-' character.
 
    T\bTa\bag\bg_\b_S\bSp\bpe\bec\bc
-       A command may have zero or more tags associated with it.  There are
-       eight possible tag values, NOPASSWD, PASSWD, NOEXEC, EXEC, SETENV,
-       NOSETENV, LOG_INPUT, NOLOG_INPUT, LOG_OUTPUT and NOLOG_OUTPUT.  Once a
-       tag is set on a Cmnd, subsequent Cmnds in the Cmnd_Spec_List, inherit
-       the tag unless it is overridden by the opposite tag (i.e.: PASSWD
-       overrides NOPASSWD and NOEXEC overrides EXEC).
+     A command may have zero or more tags associated with it.  There are ten
+     possible tag values: NOPASSWD, PASSWD, NOEXEC, EXEC, SETENV, NOSETENV,
+     LOG_INPUT, NOLOG_INPUT, LOG_OUTPUT and NOLOG_OUTPUT.  Once a tag is set
+     on a Cmnd, subsequent Cmnds in the Cmnd_Spec_List, inherit the tag unless
+     it is overridden by the opposite tag (in other words, PASSWD overrides
+     NOPASSWD and NOEXEC overrides EXEC).
 
-       _\bN_\bO_\bP_\bA_\bS_\bS_\bW_\bD _\ba_\bn_\bd _\bP_\bA_\bS_\bS_\bW_\bD
+     _\bN_\bO_\bP_\bA_\bS_\bS_\bW_\bD and _\bP_\bA_\bS_\bS_\bW_\bD
 
        By default, s\bsu\bud\bdo\bo requires that a user authenticate him or herself
        before running a command.  This behavior can be modified via the
@@ -443,26 +561,26 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS F\bFI\bIL\bLE\bE F\bFO\bOR\bRM\bMA\bAT\bT
        the commands that follow it in the Cmnd_Spec_List.  Conversely, the
        PASSWD tag can be used to reverse things.  For example:
 
-        ray    rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm
+       ray     rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm
 
        would allow the user r\bra\bay\by to run _\b/_\bb_\bi_\bn_\b/_\bk_\bi_\bl_\bl, _\b/_\bb_\bi_\bn_\b/_\bl_\bs, and _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bl_\bp_\br_\bm
        as r\bro\boo\bot\bt on the machine rushmore without authenticating himself.  If we
        only want r\bra\bay\by to be able to run _\b/_\bb_\bi_\bn_\b/_\bk_\bi_\bl_\bl without a password the entry
        would be:
 
-        ray    rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm
+       ray     rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm
 
        Note, however, that the PASSWD tag has no effect on users who are in
        the group specified by the _\be_\bx_\be_\bm_\bp_\bt_\b__\bg_\br_\bo_\bu_\bp option.
 
        By default, if the NOPASSWD tag is applied to any of the entries for a
-       user on the current host, he or she will be able to run sudo -l without
-       a password.  Additionally, a user may only run sudo -v without a
-       password if the NOPASSWD tag is present for all a user's entries that
-       pertain to the current host.  This behavior may be overridden via the
-       verifypw and listpw options.
+       user on the current host, he or she will be able to run ``sudo -l''
+       without a password.  Additionally, a user may only run ``sudo -v''
+       without a password if the NOPASSWD tag is present for all a user's
+       entries that pertain to the current host.  This behavior may be
+       overridden via the _\bv_\be_\br_\bi_\bf_\by_\bp_\bw and _\bl_\bi_\bs_\bt_\bp_\bw options.
 
-       _\bN_\bO_\bE_\bX_\bE_\bC _\ba_\bn_\bd _\bE_\bX_\bE_\bC
+     _\bN_\bO_\bE_\bX_\bE_\bC and _\bE_\bX_\bE_\bC
 
        If s\bsu\bud\bdo\bo has been compiled with _\bn_\bo_\be_\bx_\be_\bc support and the underlying
        operating system supports it, the NOEXEC tag can be used to prevent a
@@ -471,12 +589,12 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS F\bFI\bIL\bLE\bE F\bFO\bOR\bRM\bMA\bAT\bT
        In the following example, user a\baa\bar\bro\bon\bn may run _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bm_\bo_\br_\be and
        _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bv_\bi but shell escapes will be disabled.
 
-        aaron  shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
+       aaron   shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
 
-       See the "PREVENTING SHELL ESCAPES" section below for more details on
-       how NOEXEC works and whether or not it will work on your system.
+       See the _\bP_\br_\be_\bv_\be_\bn_\bt_\bi_\bn_\bg _\bs_\bh_\be_\bl_\bl _\be_\bs_\bc_\ba_\bp_\be_\bs section below for more details on how
+       NOEXEC works and whether or not it will work on your system.
 
-       _\bS_\bE_\bT_\bE_\bN_\bV _\ba_\bn_\bd _\bN_\bO_\bS_\bE_\bT_\bE_\bN_\bV
+     _\bS_\bE_\bT_\bE_\bN_\bV and _\bN_\bO_\bS_\bE_\bT_\bE_\bN_\bV
 
        These tags override the value of the _\bs_\be_\bt_\be_\bn_\bv option on a per-command
        basis.  Note that if SETENV has been set for a command, the user may
@@ -488,144 +606,190 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS F\bFI\bIL\bLE\bE F\bFO\bOR\bRM\bMA\bAT\bT
        tag is implied for that command; this default may be overridden by use
        of the NOSETENV tag.
 
-       _\bL_\bO_\bG_\b__\bI_\bN_\bP_\bU_\bT _\ba_\bn_\bd _\bN_\bO_\bL_\bO_\bG_\b__\bI_\bN_\bP_\bU_\bT
+     _\bL_\bO_\bG_\b__\bI_\bN_\bP_\bU_\bT and _\bN_\bO_\bL_\bO_\bG_\b__\bI_\bN_\bP_\bU_\bT
 
        These tags override the value of the _\bl_\bo_\bg_\b__\bi_\bn_\bp_\bu_\bt option on a per-command
        basis.  For more information, see the description of _\bl_\bo_\bg_\b__\bi_\bn_\bp_\bu_\bt in the
-       "SUDOERS OPTIONS" section below.
+       _\bS_\bU_\bD_\bO_\bE_\bR_\bS _\bO_\bP_\bT_\bI_\bO_\bN_\bS section below.
 
-       _\bL_\bO_\bG_\b__\bO_\bU_\bT_\bP_\bU_\bT _\ba_\bn_\bd _\bN_\bO_\bL_\bO_\bG_\b__\bO_\bU_\bT_\bP_\bU_\bT
+     _\bL_\bO_\bG_\b__\bO_\bU_\bT_\bP_\bU_\bT and _\bN_\bO_\bL_\bO_\bG_\b__\bO_\bU_\bT_\bP_\bU_\bT
 
        These tags override the value of the _\bl_\bo_\bg_\b__\bo_\bu_\bt_\bp_\bu_\bt option on a per-command
        basis.  For more information, see the description of _\bl_\bo_\bg_\b__\bo_\bu_\bt_\bp_\bu_\bt in the
-       "SUDOERS OPTIONS" section below.
+       _\bS_\bU_\bD_\bO_\bE_\bR_\bS _\bO_\bP_\bT_\bI_\bO_\bN_\bS section below.
 
    W\bWi\bil\bld\bdc\bca\bar\brd\bds\bs
-       s\bsu\bud\bdo\bo allows shell-style _\bw_\bi_\bl_\bd_\bc_\ba_\br_\bd_\bs (aka meta or glob characters) to be
-       used in host names, path names and command line arguments in the
-       _\bs_\bu_\bd_\bo_\be_\br_\bs file.  Wildcard matching is done via the P\bPO\bOS\bSI\bIX\bX _\bg_\bl_\bo_\bb(3) and
-       _\bf_\bn_\bm_\ba_\bt_\bc_\bh(3) routines.  Note that these are _\bn_\bo_\bt regular expressions.
+     s\bsu\bud\bdo\bo allows shell-style _\bw_\bi_\bl_\bd_\bc_\ba_\br_\bd_\bs (aka meta or glob characters) to be
+     used in host names, path names and command line arguments in the _\bs_\bu_\bd_\bo_\be_\br_\bs
+     file.  Wildcard matching is done via the glob(3) and fnmatch(3) functions
+     as specified by IEEE Std 1003.1 (``POSIX.1'').  Note that these are _\bn_\bo_\bt
+     regular expressions.
+
+     *         Matches any set of zero or more characters.
+
+     ?         Matches any single character.
+
+     [...]     Matches any character in the specified range.
+
+     [!...]    Matches any character n\bno\bot\bt in the specified range.
 
-       *       Matches any set of zero or more characters.
+     \x        For any character `x', evaluates to `x'.  This is used to
+               escape special characters such as: `*', `?', `[', and `]'.
 
-       ?       Matches any single character.
+     Character classes may also be used if your system's glob(3) and
+     fnmatch(3) functions support them.  However, because the `:' character
+     has special meaning in _\bs_\bu_\bd_\bo_\be_\br_\bs, it must be escaped.  For example:
 
-       [...]   Matches any character in the specified range.
+         /bin/ls [[:alpha:]]*
 
-       [!...]  Matches any character n\bno\bot\bt in the specified range.
+     Would match any file name beginning with a letter.
 
-       \x      For any character "x", evaluates to "x".  This is used to
-               escape special characters such as: "*", "?", "[", and "}".
+     Note that a forward slash (`/') will n\bno\bot\bt be matched by wildcards used in
+     the path name.  This is to make a path like:
 
-       POSIX character classes may also be used if your system's _\bg_\bl_\bo_\bb(3) and
-       _\bf_\bn_\bm_\ba_\bt_\bc_\bh(3) functions support them.  However, because the ':' character
-       has special meaning in _\bs_\bu_\bd_\bo_\be_\br_\bs, it must be escaped.  For example:
+         /usr/bin/*
 
-           /bin/ls [[\:alpha\:]]*
+     match _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bw_\bh_\bo but not _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bX_\b1_\b1_\b/_\bx_\bt_\be_\br_\bm.
 
-       Would match any file name beginning with a letter.
+     When matching the command line arguments, however, a slash d\bdo\boe\bes\bs get
+     matched by wildcards since command line arguments may contain arbitrary
+     strings and not just path names.
 
-       Note that a forward slash ('/') will n\bno\bot\bt be matched by wildcards used
-       in the path name.  When matching the command line arguments, however, a
-       slash d\bdo\boe\bes\bs get matched by wildcards.  This is to make a path like:
+     Wildcards in command line arguments should be used with care.  Because
+     command line arguments are matched as a single, concatenated string, a
+     wildcard such as `?' or `*' can match multiple words.  For example, while
+     a sudoers entry like:
 
-           /usr/bin/*
+         %operator ALL = /bin/cat /var/log/messages*
 
-       match _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bw_\bh_\bo but not _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bX_\b1_\b1_\b/_\bx_\bt_\be_\br_\bm.
+     will allow command like:
+
+         $ sudo cat /var/log/messages.1
+
+     It will also allow:
+
+         $ sudo cat /var/log/messages /etc/shadow
+
+     which is probably not what was intended.
 
    E\bEx\bxc\bce\bep\bpt\bti\bio\bon\bns\bs t\bto\bo w\bwi\bil\bld\bdc\bca\bar\brd\bd r\bru\bul\ble\bes\bs
-       The following exceptions apply to the above rules:
+     The following exceptions apply to the above rules:
 
-       ""      If the empty string "" is the only command line argument in the
+     ""        If the empty string "" is the only command line argument in the
                _\bs_\bu_\bd_\bo_\be_\br_\bs entry it means that command is not allowed to be run
                with a\ban\bny\by arguments.
 
+     sudoedit  Command line arguments to the _\bs_\bu_\bd_\bo_\be_\bd_\bi_\bt built-in command should
+               always be path names, so a forward slash (`/') will not be
+               matched by a wildcard.
+
    I\bIn\bnc\bcl\blu\bud\bdi\bin\bng\bg o\bot\bth\bhe\ber\br f\bfi\bil\ble\bes\bs f\bfr\bro\bom\bm w\bwi\bit\bth\bhi\bin\bn s\bsu\bud\bdo\boe\ber\brs\bs
-       It is possible to include other _\bs_\bu_\bd_\bo_\be_\br_\bs files from within the _\bs_\bu_\bd_\bo_\be_\br_\bs
-       file currently being parsed using the #include and #includedir
-       directives.
+     It is possible to include other _\bs_\bu_\bd_\bo_\be_\br_\bs files from within the _\bs_\bu_\bd_\bo_\be_\br_\bs
+     file currently being parsed using the #include and #includedir
+     directives.
 
-       This can be used, for example, to keep a site-wide _\bs_\bu_\bd_\bo_\be_\br_\bs file in
-       addition to a local, per-machine file.  For the sake of this example
-       the site-wide _\bs_\bu_\bd_\bo_\be_\br_\bs will be _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs and the per-machine one will
-       be _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bo_\bc_\ba_\bl.  To include _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bo_\bc_\ba_\bl from within
-       _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs we would use the following line in _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs:
+     This can be used, for example, to keep a site-wide _\bs_\bu_\bd_\bo_\be_\br_\bs file in
+     addition to a local, per-machine file.  For the sake of this example the
+     site-wide _\bs_\bu_\bd_\bo_\be_\br_\bs will be _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs and the per-machine one will be
+     _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bo_\bc_\ba_\bl.  To include _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bo_\bc_\ba_\bl from within
+     _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs we would use the following line in _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs:
 
-           #include /etc/sudoers.local
+         #include /etc/sudoers.local
 
-       When s\bsu\bud\bdo\bo reaches this line it will suspend processing of the current
-       file (_\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs) and switch to _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bo_\bc_\ba_\bl.  Upon reaching
-       the end of _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bo_\bc_\ba_\bl, the rest of _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs will be
-       processed.  Files that are included may themselves include other files.
-       A hard limit of 128 nested include files is enforced to prevent include
-       file loops.
+     When s\bsu\bud\bdo\bo reaches this line it will suspend processing of the current
+     file (_\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs) and switch to _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bo_\bc_\ba_\bl.  Upon reaching the
+     end of _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bo_\bc_\ba_\bl, the rest of _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs will be processed.
+     Files that are included may themselves include other files.  A hard limit
+     of 128 nested include files is enforced to prevent include file loops.
 
-       The file name may include the %h escape, signifying the short form of
-       the host name.  I.e., if the machine's host name is "xerxes", then
+     If the path to the include file is not fully-qualified (does not begin
+     with a `/', it must be located in the same directory as the sudoers file
+     it was included from.  For example, if _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs contains the line:
 
-       #include /etc/sudoers.%h
+         #include sudoers.local
 
-       will cause s\bsu\bud\bdo\bo to include the file _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bx_\be_\br_\bx_\be_\bs.
+     the file that will be included is _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bo_\bc_\ba_\bl.
 
-       The #includedir directive can be used to create a _\bs_\bu_\bd_\bo_\b._\bd directory that
-       the system package manager can drop _\bs_\bu_\bd_\bo_\be_\br_\bs rules into as part of
-       package installation.  For example, given:
+     The file name may also include the %h escape, signifying the short form
+     of the host name.  In other words, if the machine's host name is
+     ``xerxes'', then
 
-       #includedir /etc/sudoers.d
+         #include /etc/sudoers.%h
 
-       s\bsu\bud\bdo\bo will read each file in _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bd, skipping file names that
-       end in ~ or contain a . character to avoid causing problems with
-       package manager or editor temporary/backup files.  Files are parsed in
-       sorted lexical order.  That is, _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bd_\b/_\b0_\b1_\b__\bf_\bi_\br_\bs_\bt will be parsed
-       before _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bd_\b/_\b1_\b0_\b__\bs_\be_\bc_\bo_\bn_\bd.  Be aware that because the sorting is
-       lexical, not numeric, _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bd_\b/_\b1_\b__\bw_\bh_\bo_\bo_\bp_\bs would be loaded a\baf\bft\bte\ber\br
-       _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bd_\b/_\b1_\b0_\b__\bs_\be_\bc_\bo_\bn_\bd.  Using a consistent number of leading zeroes
-       in the file names can be used to avoid such problems.
+     will cause s\bsu\bud\bdo\bo to include the file _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bx_\be_\br_\bx_\be_\bs.
 
-       Note that unlike files included via #include, v\bvi\bis\bsu\bud\bdo\bo will not edit the
-       files in a #includedir directory unless one of them contains a syntax
-       error.  It is still possible to run v\bvi\bis\bsu\bud\bdo\bo with the -f flag to edit the
-       files directly.
+     The #includedir directive can be used to create a _\bs_\bu_\bd_\bo_\b._\bd directory that
+     the system package manager can drop _\bs_\bu_\bd_\bo_\be_\br_\bs rules into as part of package
+     installation.  For example, given:
+
+         #includedir /etc/sudoers.d
+
+     s\bsu\bud\bdo\bo will read each file in _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bd, skipping file names that end
+     in `~' or contain a `.' character to avoid causing problems with package
+     manager or editor temporary/backup files.  Files are parsed in sorted
+     lexical order.  That is, _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bd_\b/_\b0_\b1_\b__\bf_\bi_\br_\bs_\bt will be parsed before
+     _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bd_\b/_\b1_\b0_\b__\bs_\be_\bc_\bo_\bn_\bd.  Be aware that because the sorting is lexical,
+     not numeric, _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bd_\b/_\b1_\b__\bw_\bh_\bo_\bo_\bp_\bs would be loaded a\baf\bft\bte\ber\br
+     _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bd_\b/_\b1_\b0_\b__\bs_\be_\bc_\bo_\bn_\bd.  Using a consistent number of leading zeroes in
+     the file names can be used to avoid such problems.
+
+     Note that unlike files included via #include, v\bvi\bis\bsu\bud\bdo\bo will not edit the
+     files in a #includedir directory unless one of them contains a syntax
+     error.  It is still possible to run v\bvi\bis\bsu\bud\bdo\bo with the -\b-f\bf flag to edit the
+     files directly.
 
    O\bOt\bth\bhe\ber\br s\bsp\bpe\bec\bci\bia\bal\bl c\bch\bha\bar\bra\bac\bct\bte\ber\brs\bs a\ban\bnd\bd r\bre\bes\bse\ber\brv\bve\bed\bd w\bwo\bor\brd\bds\bs
-       The pound sign ('#') is used to indicate a comment (unless it is part
-       of a #include directive or unless it occurs in the context of a user
-       name and is followed by one or more digits, in which case it is treated
-       as a uid).  Both the comment character and any text after it, up to the
-       end of the line, are ignored.
-
-       The reserved word A\bAL\bLL\bL is a built-in _\ba_\bl_\bi_\ba_\bs that always causes a match to
-       succeed.  It can be used wherever one might otherwise use a Cmnd_Alias,
-       User_Alias, Runas_Alias, or Host_Alias.  You should not try to define
-       your own _\ba_\bl_\bi_\ba_\bs called A\bAL\bLL\bL as the built-in alias will be used in
-       preference to your own.  Please note that using A\bAL\bLL\bL can be dangerous
-       since in a command context, it allows the user to run a\ban\bny\by command on
-       the system.
-
-       An exclamation point ('!') can be used as a logical _\bn_\bo_\bt operator both
-       in an _\ba_\bl_\bi_\ba_\bs and in front of a Cmnd.  This allows one to exclude certain
-       values.  Note, however, that using a ! in conjunction with the built-in
-       ALL alias to allow a user to run "all but a few" commands rarely works
-       as intended (see SECURITY NOTES below).
-
-       Long lines can be continued with a backslash ('\') as the last
-       character on the line.
-
-       Whitespace between elements in a list as well as special syntactic
-       characters in a _\bU_\bs_\be_\br _\bS_\bp_\be_\bc_\bi_\bf_\bi_\bc_\ba_\bt_\bi_\bo_\bn ('=', ':', '(', ')') is optional.
-
-       The following characters must be escaped with a backslash ('\') when
-       used as part of a word (e.g. a user name or host name): '!', '=', ':',
-       ',', '(', ')', '\'.
+     The pound sign (`#') is used to indicate a comment (unless it is part of
+     a #include directive or unless it occurs in the context of a user name
+     and is followed by one or more digits, in which case it is treated as a
+     uid).  Both the comment character and any text after it, up to the end of
+     the line, are ignored.
+
+     The reserved word A\bAL\bLL\bL is a built-in _\ba_\bl_\bi_\ba_\bs that always causes a match to
+     succeed.  It can be used wherever one might otherwise use a Cmnd_Alias,
+     User_Alias, Runas_Alias, or Host_Alias.  You should not try to define
+     your own _\ba_\bl_\bi_\ba_\bs called A\bAL\bLL\bL as the built-in alias will be used in
+     preference to your own.  Please note that using A\bAL\bLL\bL can be dangerous
+     since in a command context, it allows the user to run a\ban\bny\by command on the
+     system.
+
+     An exclamation point (`!') can be used as a logical _\bn_\bo_\bt operator in a
+     list or _\ba_\bl_\bi_\ba_\bs as well as in front of a Cmnd.  This allows one to exclude
+     certain values.  For the `!' operator to be effective, there must be
+     something for it to exclude.  For example, to match all users except for
+     root one would use:
+
+         ALL,!root
+
+     If the A\bAL\bLL\bL, is omitted, as in:
+
+         !root
+
+     it would explicitly deny root but not match any other users.  This is
+     different from a true ``negation'' operator.
+
+     Note, however, that using a `!' in conjunction with the built-in A\bAL\bLL\bL
+     alias to allow a user to run ``all but a few'' commands rarely works as
+     intended (see _\bS_\bE_\bC_\bU_\bR_\bI_\bT_\bY _\bN_\bO_\bT_\bE_\bS below).
+
+     Long lines can be continued with a backslash (`\') as the last character
+     on the line.
+
+     White space between elements in a list as well as special syntactic
+     characters in a _\bU_\bs_\be_\br _\bS_\bp_\be_\bc_\bi_\bf_\bi_\bc_\ba_\bt_\bi_\bo_\bn (`=', `:', `(', `)') is optional.
+
+     The following characters must be escaped with a backslash (`\') when used
+     as part of a word (e.g. a user name or host name): `!', `=', `:', `,',
+     `(', `)', `\'.
 
 S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
-       s\bsu\bud\bdo\bo's behavior can be modified by Default_Entry lines, as explained
-       earlier.  A list of all supported Defaults parameters, grouped by type,
-       are listed below.
+     s\bsu\bud\bdo\bo's behavior can be modified by Default_Entry lines, as explained
+     earlier.  A list of all supported Defaults parameters, grouped by type,
+     are listed below.
 
-       B\bBo\boo\bol\ble\bea\ban\bn F\bFl\bla\bag\bgs\bs:
+     B\bBo\boo\bol\ble\bea\ban\bn F\bFl\bla\bag\bgs\bs:
 
-       always_set_home If enabled, s\bsu\bud\bdo\bo will set the HOME environment variable
+     always_set_home   If enabled, s\bsu\bud\bdo\bo will set the HOME environment variable
                        to the home directory of the target user (which is root
                        unless the -\b-u\bu option is used).  This effectively means
                        that the -\b-H\bH option is always implied.  Note that HOME
@@ -635,24 +799,63 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        HOME is present in the _\be_\bn_\bv_\b__\bk_\be_\be_\bp list.  This flag is _\bo_\bf_\bf
                        by default.
 
-       authenticate    If set, users must authenticate themselves via a
+     authenticate      If set, users must authenticate themselves via a
                        password (or other means of authentication) before they
                        may run commands.  This default may be overridden via
                        the PASSWD and NOPASSWD tags.  This flag is _\bo_\bn by
                        default.
 
-       closefrom_override
+     closefrom_override
                        If set, the user may use s\bsu\bud\bdo\bo's -\b-C\bC option which
                        overrides the default starting point at which s\bsu\bud\bdo\bo
                        begins closing open file descriptors.  This flag is _\bo_\bf_\bf
                        by default.
 
-       compress_io     If set, and s\bsu\bud\bdo\bo is configured to log a command's input
+     compress_io       If set, and s\bsu\bud\bdo\bo is configured to log a command's input
                        or output, the I/O logs will be compressed using z\bzl\bli\bib\bb.
                        This flag is _\bo_\bn by default when s\bsu\bud\bdo\bo is compiled with
                        z\bzl\bli\bib\bb support.
 
-       env_editor      If set, v\bvi\bis\bsu\bud\bdo\bo will use the value of the EDITOR or
+     exec_background   By default, s\bsu\bud\bdo\bo runs a command as the foreground
+                       process as long as s\bsu\bud\bdo\bo itself is running in the
+                       foreground.  When the _\be_\bx_\be_\bc_\b__\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd flag is enabled
+                       and the command is being run in a pty (due to I/O
+                       logging or the _\bu_\bs_\be_\b__\bp_\bt_\by flag), the command will be run
+                       as a background process.  Attempts to read from the
+                       controlling terminal (or to change terminal settings)
+                       will result in the command being suspended with the
+                       SIGTTIN signal (or SIGTTOU in the case of terminal
+                       settings).  If this happens when s\bsu\bud\bdo\bo is a foreground
+                       process, the command will be granted the controlling
+                       terminal and resumed in the foreground with no user
+                       intervention required.  The advantage of initially
+                       running the command in the background is that s\bsu\bud\bdo\bo need
+                       not read from the terminal unless the command
+                       explicitly requests it.  Otherwise, any terminal input
+                       must be passed to the command, whether it has required
+                       it or not (the kernel buffers terminals so it is not
+                       possible to tell whether the command really wants the
+                       input).  This is different from historic _\bs_\bu_\bd_\bo behavior
+                       or when the command is not being run in a pty.
+
+                       For this to work seamlessly, the operating system must
+                       support the automatic restarting of system calls.
+                       Unfortunately, not all operating systems do this by
+                       default, and even those that do may have bugs.  For
+                       example, Mac OS X fails to restart the t\btc\bcg\bge\bet\bta\bat\btt\btr\br() and
+                       t\btc\bcs\bse\bet\bta\bat\btt\btr\br() system calls (this is a bug in Mac OS X).
+                       Furthermore, because this behavior depends on the
+                       command stopping with the SIGTTIN or SIGTTOU signals,
+                       programs that catch these signals and suspend
+                       themselves with a different signal (usually SIGTOP)
+                       will not be automatically foregrounded.  Some versions
+                       of the linux su(1) command behave this way.
+
+                       This setting is only supported by version 1.8.7 or
+                       higher.  It has no effect unless I/O logging is enabled
+                       or the _\bu_\bs_\be_\b__\bp_\bt_\by flag is enabled.
+
+     env_editor        If set, v\bvi\bis\bsu\bud\bdo\bo will use the value of the EDITOR or
                        VISUAL environment variables before falling back on the
                        default editor list.  Note that this may create a
                        security hole as it allows the user to run any
@@ -662,74 +865,106 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        use the EDITOR or VISUAL if they match a value
                        specified in editor.  This flag is _\bo_\bf_\bf by default.
 
-       env_reset       If set, s\bsu\bud\bdo\bo will reset the environment to only contain
-                       the LOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*
-                       variables.  Any variables in the caller's environment
-                       that match the env_keep and env_check lists are then
-                       added.  The default contents of the env_keep and
-                       env_check lists are displayed when s\bsu\bud\bdo\bo is run by root
-                       with the _\b-_\bV option.  If the _\bs_\be_\bc_\bu_\br_\be_\b__\bp_\ba_\bt_\bh option is set,
-                       its value will be used for the PATH environment
-                       variable.  This flag is _\bo_\bn by default.
-
-       fast_glob       Normally, s\bsu\bud\bdo\bo uses the _\bg_\bl_\bo_\bb(3) function to do shell-
+     env_reset         If set, s\bsu\bud\bdo\bo will run the command in a minimal
+                       environment containing the TERM, PATH, HOME, MAIL,
+                       SHELL, LOGNAME, USER, USERNAME and SUDO_* variables.
+                       Any variables in the caller's environment that match
+                       the env_keep and env_check lists are then added,
+                       followed by any variables present in the file specified
+                       by the _\be_\bn_\bv_\b__\bf_\bi_\bl_\be option (if any).  The default contents
+                       of the env_keep and env_check lists are displayed when
+                       s\bsu\bud\bdo\bo is run by root with the -\b-V\bV option.  If the
+                       _\bs_\be_\bc_\bu_\br_\be_\b__\bp_\ba_\bt_\bh option is set, its value will be used for
+                       the PATH environment variable.  This flag is _\bo_\bn by
+                       default.
+
+     fast_glob         Normally, s\bsu\bud\bdo\bo uses the glob(3) function to do shell-
                        style globbing when matching path names.  However,
-                       since it accesses the file system, _\bg_\bl_\bo_\bb(3) can take a
+                       since it accesses the file system, glob(3) can take a
                        long time to complete for some patterns, especially
                        when the pattern references a network file system that
-                       is mounted on demand (automounted).  The _\bf_\ba_\bs_\bt_\b__\bg_\bl_\bo_\bb
-                       option causes s\bsu\bud\bdo\bo to use the _\bf_\bn_\bm_\ba_\bt_\bc_\bh(3) function,
+                       is mounted on demand (auto mounted).  The _\bf_\ba_\bs_\bt_\b__\bg_\bl_\bo_\bb
+                       option causes s\bsu\bud\bdo\bo to use the fnmatch(3) function,
                        which does not access the file system to do its
                        matching.  The disadvantage of _\bf_\ba_\bs_\bt_\b__\bg_\bl_\bo_\bb is that it is
                        unable to match relative path names such as _\b._\b/_\bl_\bs or
                        _\b._\b._\b/_\bb_\bi_\bn_\b/_\bl_\bs.  This has security implications when path
                        names that include globbing characters are used with
-                       the negation operator, '!', as such rules can be
+                       the negation operator, `!', as such rules can be
                        trivially bypassed.  As such, this option should not be
                        used when _\bs_\bu_\bd_\bo_\be_\br_\bs contains rules that contain negated
                        path names which include globbing characters.  This
                        flag is _\bo_\bf_\bf by default.
 
-       fqdn            Set this flag if you want to put fully qualified host
-                       names in the _\bs_\bu_\bd_\bo_\be_\br_\bs file.  I.e., instead of myhost you
+     fqdn              Set this flag if you want to put fully qualified host
+                       names in the _\bs_\bu_\bd_\bo_\be_\br_\bs file when the local host name (as
+                       returned by the hostname command) does not contain the
+                       domain name.  In other words, instead of myhost you
                        would use myhost.mydomain.edu.  You may still use the
-                       short form if you wish (and even mix the two).  Beware
-                       that turning on _\bf_\bq_\bd_\bn requires s\bsu\bud\bdo\bo to make DNS lookups
-                       which may make s\bsu\bud\bdo\bo unusable if DNS stops working (for
-                       example if the machine is not plugged into the
-                       network).  Also note that you must use the host's
-                       official name as DNS knows it.  That is, you may not
-                       use a host alias (CNAME entry) due to performance
-                       issues and the fact that there is no way to get all
-                       aliases from DNS.  If your machine's host name (as
-                       returned by the hostname command) is already fully
-                       qualified you shouldn't need to set _\bf_\bq_\bd_\bn.  This flag is
-                       _\bo_\bf_\bf by default.
+                       short form if you wish (and even mix the two).  This
+                       option is only effective when the ``canonical'' host
+                       name, as returned by the g\bge\bet\bta\bad\bdd\bdr\bri\bin\bnf\bfo\bo() or
+                       g\bge\bet\bth\bho\bos\bst\btb\bby\byn\bna\bam\bme\be() function, is a fully-qualified domain
+                       name.  This is usually the case when the system is
+                       configured to use DNS for host name resolution.
+
+                       If the system is configured to use the _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs file
+                       in preference to DNS, the ``canonical'' host name may
+                       not be fully-qualified.  The order that sources are
+                       queried for hosts name resolution is usually specified
+                       in the _\b/_\be_\bt_\bc_\b/_\bn_\bs_\bs_\bw_\bi_\bt_\bc_\bh_\b._\bc_\bo_\bn_\bf, _\b/_\be_\bt_\bc_\b/_\bn_\be_\bt_\bs_\bv_\bc_\b._\bc_\bo_\bn_\bf,
+                       _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\b._\bc_\bo_\bn_\bf, or, in some cases, _\b/_\be_\bt_\bc_\b/_\br_\be_\bs_\bo_\bl_\bv_\b._\bc_\bo_\bn_\bf
+                       file.  In the _\b/_\be_\bt_\bc_\b/_\bh_\bo_\bs_\bt_\bs file, the first host name of
+                       the entry is considered to be the ``canonical'' name;
+                       subsequent names are aliases that are not used by
+                       s\bsu\bud\bdo\boe\ber\brs\bs.  For example, the following hosts file line
+                       for the machine ``xyzzy'' has the fully-qualified
+                       domain name as the ``canonical'' host name, and the
+                       short version as an alias.
+
+                             192.168.1.1    xyzzy.sudo.ws xyzzy
+
+                       If the machine's hosts file entry is not formatted
+                       properly, the _\bf_\bq_\bd_\bn option will not be effective if it
+                       is queried before DNS.
+
+                       Beware that when using DNS for host name resolution,
+                       turning on _\bf_\bq_\bd_\bn requires s\bsu\bud\bdo\boe\ber\brs\bs to make DNS lookups
+                       which renders s\bsu\bud\bdo\bo unusable if DNS stops working (for
+                       example if the machine is disconnected from the
+                       network).  Also note that just like with the hosts
+                       file, you must use the ``canonical'' name as DNS knows
+                       it.  That is, you may not use a host alias (CNAME
+                       entry) due to performance issues and the fact that
+                       there is no way to get all aliases from DNS.
 
-       ignore_dot      If set, s\bsu\bud\bdo\bo will ignore '.' or '' (current dir) in the
-                       PATH environment variable; the PATH itself is not
-                       modified.  This flag is _\bo_\bf_\bf by default.
+                       This flag is _\bo_\bf_\bf by default.
 
-       ignore_local_sudoers
+     ignore_dot        If set, s\bsu\bud\bdo\bo will ignore "." or "" (both denoting
+                       current directory) in the PATH environment variable;
+                       the PATH itself is not modified.  This flag is _\bo_\bf_\bf by
+                       default.
+
+     ignore_local_sudoers
                        If set via LDAP, parsing of _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs will be
                        skipped.  This is intended for Enterprises that wish to
                        prevent the usage of local sudoers files so that only
                        LDAP is used.  This thwarts the efforts of rogue
                        operators who would attempt to add roles to
                        _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs.  When this option is present,
-                       _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs does not even need to exist. Since this
+                       _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs does not even need to exist.  Since this
                        option tells s\bsu\bud\bdo\bo how to behave when no specific LDAP
                        entries have been matched, this sudoOption is only
                        meaningful for the cn=defaults section.  This flag is
                        _\bo_\bf_\bf by default.
 
-       insults         If set, s\bsu\bud\bdo\bo will insult users when they enter an
+     insults           If set, s\bsu\bud\bdo\bo will insult users when they enter an
                        incorrect password.  This flag is _\bo_\bf_\bf by default.
 
-       log_host        If set, the host name will be logged in the (non-
+     log_host          If set, the host name will be logged in the (non-
                        syslog) s\bsu\bud\bdo\bo log file.  This flag is _\bo_\bf_\bf by default.
 
-       log_input       If set, s\bsu\bud\bdo\bo will run the command in a _\bp_\bs_\be_\bu_\bd_\bo _\bt_\bt_\by and
+     log_input         If set, s\bsu\bud\bdo\bo will run the command in a _\bp_\bs_\be_\bu_\bd_\bo _\bt_\bt_\by and
                        log all user input.  If the standard input is not
                        connected to the user's tty, due to I/O redirection or
                        because the command is part of a pipeline, that input
@@ -738,8 +973,9 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        Input is logged to the directory specified by the
                        _\bi_\bo_\bl_\bo_\bg_\b__\bd_\bi_\br option (_\b/_\bv_\ba_\br_\b/_\bl_\bo_\bg_\b/_\bs_\bu_\bd_\bo_\b-_\bi_\bo by default) using a
                        unique session ID that is included in the normal s\bsu\bud\bdo\bo
-                       log line, prefixed with _\bT_\bS_\bI_\bD_\b=.  The _\bi_\bo_\bl_\bo_\bg_\b__\bf_\bi_\bl_\be option
-                       may be used to control the format of the session ID.
+                       log line, prefixed with ``TSID=''.  The _\bi_\bo_\bl_\bo_\bg_\b__\bf_\bi_\bl_\be
+                       option may be used to control the format of the session
+                       ID.
 
                        Note that user input may contain sensitive information
                        such as passwords (even if they are not echoed to the
@@ -747,9 +983,9 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        unencrypted.  In most cases, logging the command output
                        via _\bl_\bo_\bg_\b__\bo_\bu_\bt_\bp_\bu_\bt is all that is required.
 
-       log_output      If set, s\bsu\bud\bdo\bo will run the command in a _\bp_\bs_\be_\bu_\bd_\bo _\bt_\bt_\by and
+     log_output        If set, s\bsu\bud\bdo\bo will run the command in a _\bp_\bs_\be_\bu_\bd_\bo _\bt_\bt_\by and
                        log all output that is sent to the screen, similar to
-                       the _\bs_\bc_\br_\bi_\bp_\bt(1) command.  If the standard output or
+                       the script(1) command.  If the standard output or
                        standard error is not connected to the user's tty, due
                        to I/O redirection or because the command is part of a
                        pipeline, that output is also captured and stored in
@@ -758,52 +994,76 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        Output is logged to the directory specified by the
                        _\bi_\bo_\bl_\bo_\bg_\b__\bd_\bi_\br option (_\b/_\bv_\ba_\br_\b/_\bl_\bo_\bg_\b/_\bs_\bu_\bd_\bo_\b-_\bi_\bo by default) using a
                        unique session ID that is included in the normal s\bsu\bud\bdo\bo
-                       log line, prefixed with _\bT_\bS_\bI_\bD_\b=.  The _\bi_\bo_\bl_\bo_\bg_\b__\bf_\bi_\bl_\be option
-                       may be used to control the format of the session ID.
+                       log line, prefixed with ``TSID=''.  The _\bi_\bo_\bl_\bo_\bg_\b__\bf_\bi_\bl_\be
+                       option may be used to control the format of the session
+                       ID.
 
-                       Output logs may be viewed with the _\bs_\bu_\bd_\bo_\br_\be_\bp_\bl_\ba_\by(1m)
+                       Output logs may be viewed with the sudoreplay(1m)
                        utility, which can also be used to list or search the
                        available logs.
 
-       log_year        If set, the four-digit year will be logged in the (non-
+     log_year          If set, the four-digit year will be logged in the (non-
                        syslog) s\bsu\bud\bdo\bo log file.  This flag is _\bo_\bf_\bf by default.
 
-       long_otp_prompt When validating with a One Time Password (OTP) scheme
+     long_otp_prompt   When validating with a One Time Password (OTP) scheme
                        such as S\bS/\b/K\bKe\bey\by or O\bOP\bPI\bIE\bE, a two-line prompt is used to
                        make it easier to cut and paste the challenge to a
                        local window.  It's not as pretty as the default but
                        some people find it more convenient.  This flag is _\bo_\bf_\bf
                        by default.
 
-       mail_always     Send mail to the _\bm_\ba_\bi_\bl_\bt_\bo user every time a users runs
+     mail_always       Send mail to the _\bm_\ba_\bi_\bl_\bt_\bo user every time a users runs
                        s\bsu\bud\bdo\bo.  This flag is _\bo_\bf_\bf by default.
 
-       mail_badpass    Send mail to the _\bm_\ba_\bi_\bl_\bt_\bo user if the user running s\bsu\bud\bdo\bo
-                       does not enter the correct password.  This flag is _\bo_\bf_\bf
-                       by default.
+     mail_badpass      Send mail to the _\bm_\ba_\bi_\bl_\bt_\bo user if the user running s\bsu\bud\bdo\bo
+                       does not enter the correct password.  If the command
+                       the user is attempting to run is not permitted by
+                       _\bs_\bu_\bd_\bo_\be_\br_\bs and one of the _\bm_\ba_\bi_\bl_\b__\ba_\bl_\bw_\ba_\by_\bs, _\bm_\ba_\bi_\bl_\b__\bn_\bo_\b__\bh_\bo_\bs_\bt,
+                       _\bm_\ba_\bi_\bl_\b__\bn_\bo_\b__\bp_\be_\br_\bm_\bs or _\bm_\ba_\bi_\bl_\b__\bn_\bo_\b__\bu_\bs_\be_\br flags are set, this flag
+                       will have no effect.  This flag is _\bo_\bf_\bf by default.
 
-       mail_no_host    If set, mail will be sent to the _\bm_\ba_\bi_\bl_\bt_\bo user if the
+     mail_no_host      If set, mail will be sent to the _\bm_\ba_\bi_\bl_\bt_\bo user if the
                        invoking user exists in the _\bs_\bu_\bd_\bo_\be_\br_\bs file, but is not
                        allowed to run commands on the current host.  This flag
                        is _\bo_\bf_\bf by default.
 
-       mail_no_perms   If set, mail will be sent to the _\bm_\ba_\bi_\bl_\bt_\bo user if the
+     mail_no_perms     If set, mail will be sent to the _\bm_\ba_\bi_\bl_\bt_\bo user if the
                        invoking user is allowed to use s\bsu\bud\bdo\bo but the command
                        they are trying is not listed in their _\bs_\bu_\bd_\bo_\be_\br_\bs file
                        entry or is explicitly denied.  This flag is _\bo_\bf_\bf by
                        default.
 
-       mail_no_user    If set, mail will be sent to the _\bm_\ba_\bi_\bl_\bt_\bo user if the
+     mail_no_user      If set, mail will be sent to the _\bm_\ba_\bi_\bl_\bt_\bo user if the
                        invoking user is not in the _\bs_\bu_\bd_\bo_\be_\br_\bs file.  This flag is
                        _\bo_\bn by default.
 
-       noexec          If set, all commands run via s\bsu\bud\bdo\bo will behave as if the
+     noexec            If set, all commands run via s\bsu\bud\bdo\bo will behave as if the
                        NOEXEC tag has been set, unless overridden by a EXEC
                        tag.  See the description of _\bN_\bO_\bE_\bX_\bE_\bC _\ba_\bn_\bd _\bE_\bX_\bE_\bC below as
-                       well as the "PREVENTING SHELL ESCAPES" section at the
-                       end of this manual.  This flag is _\bo_\bf_\bf by default.
+                       well as the _\bP_\br_\be_\bv_\be_\bn_\bt_\bi_\bn_\bg _\bs_\bh_\be_\bl_\bl _\be_\bs_\bc_\ba_\bp_\be_\bs section at the end
+                       of this manual.  This flag is _\bo_\bf_\bf by default.
+
+     pam_session       On systems that use PAM for authentication, s\bsu\bud\bdo\bo will
+                       create a new PAM session for the command to be run in.
+                       Disabling _\bp_\ba_\bm_\b__\bs_\be_\bs_\bs_\bi_\bo_\bn may be needed on older PAM
+                       implementations or on operating systems where opening a
+                       PAM session changes the utmp or wtmp files.  If PAM
+                       session support is disabled, resource limits may not be
+                       updated for the command being run.  This flag is _\bo_\bn by
+                       default.
 
-       path_info       Normally, s\bsu\bud\bdo\bo will tell the user when a command could
+                       This setting is only supported by version 1.8.7 or
+                       higher.
+
+     passprompt_override
+                       The password prompt specified by _\bp_\ba_\bs_\bs_\bp_\br_\bo_\bm_\bp_\bt will
+                       normally only be used if the password prompt provided
+                       by systems such as PAM matches the string
+                       ``Password:''.  If _\bp_\ba_\bs_\bs_\bp_\br_\bo_\bm_\bp_\bt_\b__\bo_\bv_\be_\br_\br_\bi_\bd_\be is set,
+                       _\bp_\ba_\bs_\bs_\bp_\br_\bo_\bm_\bp_\bt will always be used.  This flag is _\bo_\bf_\bf by
+                       default.
+
+     path_info         Normally, s\bsu\bud\bdo\bo will tell the user when a command could
                        not be found in their PATH environment variable.  Some
                        sites may wish to disable this as it could be used to
                        gather information on the location of executables that
@@ -813,21 +1073,14 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        not allowed to run it, which can be confusing.  This
                        flag is _\bo_\bn by default.
 
-       passprompt_override
-                       The password prompt specified by _\bp_\ba_\bs_\bs_\bp_\br_\bo_\bm_\bp_\bt will
-                       normally only be used if the password prompt provided
-                       by systems such as PAM matches the string "Password:".
-                       If _\bp_\ba_\bs_\bs_\bp_\br_\bo_\bm_\bp_\bt_\b__\bo_\bv_\be_\br_\br_\bi_\bd_\be is set, _\bp_\ba_\bs_\bs_\bp_\br_\bo_\bm_\bp_\bt will always
-                       be used.  This flag is _\bo_\bf_\bf by default.
-
-       preserve_groups By default, s\bsu\bud\bdo\bo will initialize the group vector to
+     preserve_groups   By default, s\bsu\bud\bdo\bo will initialize the group vector to
                        the list of groups the target user is in.  When
                        _\bp_\br_\be_\bs_\be_\br_\bv_\be_\b__\bg_\br_\bo_\bu_\bp_\bs is set, the user's existing group
                        vector is left unaltered.  The real and effective group
                        IDs, however, are still set to match the target user.
                        This flag is _\bo_\bf_\bf by default.
 
-       pwfeedback      By default, s\bsu\bud\bdo\bo reads the password like most other
+     pwfeedback        By default, s\bsu\bud\bdo\bo reads the password like most other
                        Unix programs, by turning off echo until the user hits
                        the return (or enter) key.  Some users become confused
                        by this as it appears to them that s\bsu\bud\bdo\bo has hung at
@@ -837,31 +1090,31 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        able to determine the length of the password being
                        entered.  This flag is _\bo_\bf_\bf by default.
 
-       requiretty      If set, s\bsu\bud\bdo\bo will only run when the user is logged in
+     requiretty        If set, s\bsu\bud\bdo\bo will only run when the user is logged in
                        to a real tty.  When this flag is set, s\bsu\bud\bdo\bo can only be
                        run from a login session and not via other means such
-                       as _\bc_\br_\bo_\bn(1m) or cgi-bin scripts.  This flag is _\bo_\bf_\bf by
+                       as cron(1m) or cgi-bin scripts.  This flag is _\bo_\bf_\bf by
                        default.
 
-       root_sudo       If set, root is allowed to run s\bsu\bud\bdo\bo too.  Disabling
-                       this prevents users from "chaining" s\bsu\bud\bdo\bo commands to
-                       get a root shell by doing something like "sudo sudo
-                       /bin/sh".  Note, however, that turning off _\br_\bo_\bo_\bt_\b__\bs_\bu_\bd_\bo
+     root_sudo         If set, root is allowed to run s\bsu\bud\bdo\bo too.  Disabling
+                       this prevents users from ``chaining'' s\bsu\bud\bdo\bo commands to
+                       get a root shell by doing something like ``sudo sudo
+                       /bin/sh''.  Note, however, that turning off _\br_\bo_\bo_\bt_\b__\bs_\bu_\bd_\bo
                        will also prevent root from running s\bsu\bud\bdo\boe\bed\bdi\bit\bt.
                        Disabling _\br_\bo_\bo_\bt_\b__\bs_\bu_\bd_\bo provides no real additional
                        security; it exists purely for historical reasons.
                        This flag is _\bo_\bn by default.
 
-       rootpw          If set, s\bsu\bud\bdo\bo will prompt for the root password instead
+     rootpw            If set, s\bsu\bud\bdo\bo will prompt for the root password instead
                        of the password of the invoking user.  This flag is _\bo_\bf_\bf
                        by default.
 
-       runaspw         If set, s\bsu\bud\bdo\bo will prompt for the password of the user
+     runaspw           If set, s\bsu\bud\bdo\bo will prompt for the password of the user
                        defined by the _\br_\bu_\bn_\ba_\bs_\b__\bd_\be_\bf_\ba_\bu_\bl_\bt option (defaults to root)
                        instead of the password of the invoking user.  This
                        flag is _\bo_\bf_\bf by default.
 
-       set_home        If enabled and s\bsu\bud\bdo\bo is invoked with the -\b-s\bs option the
+     set_home          If enabled and s\bsu\bud\bdo\bo is invoked with the -\b-s\bs option the
                        HOME environment variable will be set to the home
                        directory of the target user (which is root unless the
                        -\b-u\bu option is used).  This effectively makes the -\b-s\bs
@@ -871,7 +1124,7 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt is disabled or HOME is present in the
                        _\be_\bn_\bv_\b__\bk_\be_\be_\bp list.  This flag is _\bo_\bf_\bf by default.
 
-       set_logname     Normally, s\bsu\bud\bdo\bo will set the LOGNAME, USER and USERNAME
+     set_logname       Normally, s\bsu\bud\bdo\bo will set the LOGNAME, USER and USERNAME
                        environment variables to the name of the target user
                        (usually root unless the -\b-u\bu option is given).  However,
                        since some programs (including the RCS revision control
@@ -882,7 +1135,7 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        disabled, entries in the _\be_\bn_\bv_\b__\bk_\be_\be_\bp list will override
                        the value of _\bs_\be_\bt_\b__\bl_\bo_\bg_\bn_\ba_\bm_\be.  This flag is _\bo_\bn by default.
 
-       set_utmp        When enabled, s\bsu\bud\bdo\bo will create an entry in the utmp (or
+     set_utmp          When enabled, s\bsu\bud\bdo\bo will create an entry in the utmp (or
                        utmpx) file when a pseudo-tty is allocated.  A pseudo-
                        tty is allocated by s\bsu\bud\bdo\bo when the _\bl_\bo_\bg_\b__\bi_\bn_\bp_\bu_\bt, _\bl_\bo_\bg_\b__\bo_\bu_\bt_\bp_\bu_\bt
                        or _\bu_\bs_\be_\b__\bp_\bt_\by flags are enabled.  By default, the new
@@ -890,7 +1143,7 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        (if any), with the tty, time, type and pid fields
                        updated.  This flag is _\bo_\bn by default.
 
-       setenv          Allow the user to disable the _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt option from the
+     setenv            Allow the user to disable the _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt option from the
                        command line via the -\b-E\bE option.  Additionally,
                        environment variables set via the command line are not
                        subject to the restrictions imposed by _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk,
@@ -898,14 +1151,14 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        should be allowed to set variables in this manner.
                        This flag is _\bo_\bf_\bf by default.
 
-       shell_noargs    If set and s\bsu\bud\bdo\bo is invoked with no arguments it acts as
+     shell_noargs      If set and s\bsu\bud\bdo\bo is invoked with no arguments it acts as
                        if the -\b-s\bs option had been given.  That is, it runs a
                        shell as root (the shell is determined by the SHELL
                        environment variable if it is set, falling back on the
                        shell listed in the invoking user's /etc/passwd entry
                        if not).  This flag is _\bo_\bf_\bf by default.
 
-       stay_setuid     Normally, when s\bsu\bud\bdo\bo executes a command the real and
+     stay_setuid       Normally, when s\bsu\bud\bdo\bo executes a command the real and
                        effective UIDs are set to the target user (root by
                        default).  This option changes that behavior such that
                        the real UID is left as the invoking user's UID.  In
@@ -913,24 +1166,24 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        This can be useful on systems that disable some
                        potentially dangerous functionality when a program is
                        run setuid.  This option is only effective on systems
-                       with either the _\bs_\be_\bt_\br_\be_\bu_\bi_\bd_\b(_\b) or _\bs_\be_\bt_\br_\be_\bs_\bu_\bi_\bd_\b(_\b) function.
-                       This flag is _\bo_\bf_\bf by default.
+                       that support either the setreuid(2) or setresuid(2)
+                       system call.  This flag is _\bo_\bf_\bf by default.
 
-       targetpw        If set, s\bsu\bud\bdo\bo will prompt for the password of the user
+     targetpw          If set, s\bsu\bud\bdo\bo will prompt for the password of the user
                        specified by the -\b-u\bu option (defaults to root) instead
                        of the password of the invoking user.  In addition, the
-                       timestamp file name will include the target user's
+                       time stamp file name will include the target user's
                        name.  Note that this flag precludes the use of a uid
                        not listed in the passwd database as an argument to the
                        -\b-u\bu option.  This flag is _\bo_\bf_\bf by default.
 
-       tty_tickets     If set, users must authenticate on a per-tty basis.
+     tty_tickets       If set, users must authenticate on a per-tty basis.
                        With this flag enabled, s\bsu\bud\bdo\bo will use a file named for
                        the tty the user is logged in on in the user's time
                        stamp directory.  If disabled, the time stamp of the
                        directory is used instead.  This flag is _\bo_\bn by default.
 
-       umask_override  If set, s\bsu\bud\bdo\bo will set the umask as specified by _\bs_\bu_\bd_\bo_\be_\br_\bs
+     umask_override    If set, s\bsu\bud\bdo\bo will set the umask as specified by _\bs_\bu_\bd_\bo_\be_\br_\bs
                        without modification.  This makes it possible to
                        specify a more permissive umask in _\bs_\bu_\bd_\bo_\be_\br_\bs than the
                        user's own umask and matches historical behavior.  If
@@ -938,12 +1191,12 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        be the union of the user's umask and what is specified
                        in _\bs_\bu_\bd_\bo_\be_\br_\bs.  This flag is _\bo_\bf_\bf by default.
 
-       use_loginclass  If set, s\bsu\bud\bdo\bo will apply the defaults specified for the
+     use_loginclass    If set, s\bsu\bud\bdo\bo will apply the defaults specified for the
                        target user's login class if one exists.  Only
                        available if s\bsu\bud\bdo\bo is configured with the
                        --with-logincap option.  This flag is _\bo_\bf_\bf by default.
 
-       use_pty         If set, s\bsu\bud\bdo\bo will run the command in a pseudo-pty even
+     use_pty           If set, s\bsu\bud\bdo\bo will run the command in a pseudo-pty even
                        if no I/O logging is being gone.  A malicious program
                        run under s\bsu\bud\bdo\bo could conceivably fork a background
                        process that retains to the user's terminal device
@@ -951,129 +1204,131 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        this option will make that impossible.  This flag is
                        _\bo_\bf_\bf by default.
 
-       utmp_runas      If set, s\bsu\bud\bdo\bo will store the name of the runas user when
+     utmp_runas        If set, s\bsu\bud\bdo\bo will store the name of the runas user when
                        updating the utmp (or utmpx) file.  By default, s\bsu\bud\bdo\bo
                        stores the name of the invoking user.  This flag is _\bo_\bf_\bf
                        by default.
 
-       visiblepw       By default, s\bsu\bud\bdo\bo will refuse to run if the user must
+     visiblepw         By default, s\bsu\bud\bdo\bo will refuse to run if the user must
                        enter a password but it is not possible to disable echo
                        on the terminal.  If the _\bv_\bi_\bs_\bi_\bb_\bl_\be_\bp_\bw flag is set, s\bsu\bud\bdo\bo
                        will prompt for a password even when it would be
                        visible on the screen.  This makes it possible to run
-                       things like "rsh somehost sudo ls" since _\br_\bs_\bh(1) does
-                       not allocate a tty.  This flag is _\bo_\bf_\bf by default.
+                       things like ``ssh somehost sudo ls'' since by default,
+                       ssh(1) does not allocate a tty when running a command.
+                       This flag is _\bo_\bf_\bf by default.
 
-       I\bIn\bnt\bte\beg\bge\ber\brs\bs:
+     I\bIn\bnt\bte\beg\bge\ber\brs\bs:
 
-       closefrom       Before it executes a command, s\bsu\bud\bdo\bo will close all open
+     closefrom         Before it executes a command, s\bsu\bud\bdo\bo will close all open
                        file descriptors other than standard input, standard
                        output and standard error (ie: file descriptors 0-2).
                        The _\bc_\bl_\bo_\bs_\be_\bf_\br_\bo_\bm option can be used to specify a different
                        file descriptor at which to start closing.  The default
                        is 3.
 
-       passwd_tries    The number of tries a user gets to enter his/her
+     passwd_tries      The number of tries a user gets to enter his/her
                        password before s\bsu\bud\bdo\bo logs the failure and exits.  The
                        default is 3.
 
-       I\bIn\bnt\bte\beg\bge\ber\brs\bs t\bth\bha\bat\bt c\bca\ban\bn b\bbe\be u\bus\bse\bed\bd i\bin\bn a\ba b\bbo\boo\bol\ble\bea\ban\bn c\bco\bon\bnt\bte\bex\bxt\bt:
+     I\bIn\bnt\bte\beg\bge\ber\brs\bs t\bth\bha\bat\bt c\bca\ban\bn b\bbe\be u\bus\bse\bed\bd i\bin\bn a\ba b\bbo\boo\bol\ble\bea\ban\bn c\bco\bon\bnt\bte\bex\bxt\bt:
 
-       loglinelen      Number of characters per line for the file log.  This
+     loglinelen        Number of characters per line for the file log.  This
                        value is used to decide when to wrap lines for nicer
                        log files.  This has no effect on the syslog log file,
                        only the file log.  The default is 80 (use 0 or negate
                        the option to disable word wrap).
 
-       passwd_timeout  Number of minutes before the s\bsu\bud\bdo\bo password prompt times
+     passwd_timeout    Number of minutes before the s\bsu\bud\bdo\bo password prompt times
                        out, or 0 for no timeout.  The timeout may include a
                        fractional component if minute granularity is
                        insufficient, for example 2.5.  The default is 5.
 
-       timestamp_timeout
+     timestamp_timeout
                        Number of minutes that can elapse before s\bsu\bud\bdo\bo will ask
                        for a passwd again.  The timeout may include a
                        fractional component if minute granularity is
                        insufficient, for example 2.5.  The default is 5.  Set
                        this to 0 to always prompt for a password.  If set to a
-                       value less than 0 the user's timestamp will never
+                       value less than 0 the user's time stamp will never
                        expire.  This can be used to allow users to create or
-                       delete their own timestamps via sudo -v and sudo -k
-                       respectively.
+                       delete their own time stamps via ``sudo -v'' and ``sudo
+                       -k'' respectively.
 
-       umask           Umask to use when running the command.  Negate this
+     umask             Umask to use when running the command.  Negate this
                        option or set it to 0777 to preserve the user's umask.
                        The actual umask that is used will be the union of the
                        user's umask and the value of the _\bu_\bm_\ba_\bs_\bk option, which
                        defaults to 0022.  This guarantees that s\bsu\bud\bdo\bo never
-                       lowers the umask when running a command.  Note on
+                       lowers the umask when running a command.  Note: on
                        systems that use PAM, the default PAM configuration may
                        specify its own umask which will override the value set
                        in _\bs_\bu_\bd_\bo_\be_\br_\bs.
 
-       S\bSt\btr\bri\bin\bng\bgs\bs:
+     S\bSt\btr\bri\bin\bng\bgs\bs:
 
-       badpass_message Message that is displayed if a user enters an incorrect
+     badpass_message   Message that is displayed if a user enters an incorrect
                        password.  The default is Sorry, try again. unless
                        insults are enabled.
 
-       editor          A colon (':') separated list of editors allowed to be
+     editor            A colon (`:') separated list of editors allowed to be
                        used with v\bvi\bis\bsu\bud\bdo\bo.  v\bvi\bis\bsu\bud\bdo\bo will choose the editor that
                        matches the user's EDITOR environment variable if
                        possible, or the first editor in the list that exists
-                       and is executable.  The default is "vi".
+                       and is executable.  The default is _\bv_\bi.
 
-       iolog_dir       The top-level directory to use when constructing the
+     iolog_dir         The top-level directory to use when constructing the
                        path name for the input/output log directory.  Only
                        used if the _\bl_\bo_\bg_\b__\bi_\bn_\bp_\bu_\bt or _\bl_\bo_\bg_\b__\bo_\bu_\bt_\bp_\bu_\bt options are enabled
                        or when the LOG_INPUT or LOG_OUTPUT tags are present
                        for a command.  The session sequence number, if any, is
                        stored in the directory.  The default is
-                       "/var/log/sudo-io".
+                       _\b/_\bv_\ba_\br_\b/_\bl_\bo_\bg_\b/_\bs_\bu_\bd_\bo_\b-_\bi_\bo.
 
                        The following percent (`%') escape sequences are
                        supported:
 
                        %{seq}
-                           expanded to a monotonically increasing base-36
-                           sequence number, such as 0100A5, where every two
-                           digits are used to form a new directory, e.g.
-                           _\b0_\b1_\b/_\b0_\b0_\b/_\bA_\b5
+                             expanded to a monotonically increasing base-36
+                             sequence number, such as 0100A5, where every two
+                             digits are used to form a new directory, e.g.
+                             _\b0_\b1_\b/_\b0_\b0_\b/_\bA_\b5
 
                        %{user}
-                           expanded to the invoking user's login name
+                             expanded to the invoking user's login name
 
                        %{group}
-                           expanded to the name of the invoking user's real
-                           group ID
+                             expanded to the name of the invoking user's real
+                             group ID
 
                        %{runas_user}
-                           expanded to the login name of the user the command
-                           will be run as (e.g. root)
+                             expanded to the login name of the user the
+                             command will be run as (e.g. root)
 
                        %{runas_group}
-                           expanded to the group name of the user the command
-                           will be run as (e.g. wheel)
+                             expanded to the group name of the user the
+                             command will be run as (e.g. wheel)
 
                        %{hostname}
-                           expanded to the local host name without the domain
-                           name
+                             expanded to the local host name without the
+                             domain name
 
                        %{command}
-                           expanded to the base name of the command being run
+                             expanded to the base name of the command being
+                             run
 
                        In addition, any escape sequences supported by the
-                       system's _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be_\b(_\b) function will be expanded.
+                       system's strftime(3) function will be expanded.
 
                        To include a literal `%' character, the string `%%'
                        should be used.
 
-       iolog_file      The path name, relative to _\bi_\bo_\bl_\bo_\bg_\b__\bd_\bi_\br, in which to store
+     iolog_file        The path name, relative to _\bi_\bo_\bl_\bo_\bg_\b__\bd_\bi_\br, in which to store
                        input/output logs when the _\bl_\bo_\bg_\b__\bi_\bn_\bp_\bu_\bt or _\bl_\bo_\bg_\b__\bo_\bu_\bt_\bp_\bu_\bt
                        options are enabled or when the LOG_INPUT or LOG_OUTPUT
                        tags are present for a command.  Note that _\bi_\bo_\bl_\bo_\bg_\b__\bf_\bi_\bl_\be
                        may contain directory components.  The default is
-                       "%{seq}".
+                       ``%{seq}''.
 
                        See the _\bi_\bo_\bl_\bo_\bg_\b__\bd_\bi_\br option above for a list of supported
                        percent (`%') escape sequences.
@@ -1081,115 +1336,148 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        In addition to the escape sequences, path names that
                        end in six or more Xs will have the Xs replaced with a
                        unique combination of digits and letters, similar to
-                       the _\bm_\bk_\bt_\be_\bm_\bp_\b(_\b) function.
-
-       mailsub         Subject of the mail sent to the _\bm_\ba_\bi_\bl_\bt_\bo user. The escape
-                       %h will expand to the host name of the machine.
-                       Default is *** SECURITY information for %h ***.
-
-       noexec_file     This option is deprecated and will be removed in a
-                       future release of s\bsu\bud\bdo\bo.  The path to the noexec file
-                       should now be set in the _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\b._\bc_\bo_\bn_\bf file.
-
-       passprompt      The default prompt to use when asking for a password;
+                       the mktemp(3) function.
+
+                       If the path created by concatenating _\bi_\bo_\bl_\bo_\bg_\b__\bd_\bi_\br and
+                       _\bi_\bo_\bl_\bo_\bg_\b__\bf_\bi_\bl_\be already exists, the existing I/O log file
+                       will be truncated and overwritten unless _\bi_\bo_\bl_\bo_\bg_\b__\bf_\bi_\bl_\be
+                       ends in six or more Xs.
+
+     limitprivs        The default Solaris limit privileges to use when
+                       constructing a new privilege set for a command.  This
+                       bounds all privileges of the executing process.  The
+                       default limit privileges may be overridden on a per-
+                       command basis in _\bs_\bu_\bd_\bo_\be_\br_\bs.  This option is only
+                       available if s\bsu\bud\bdo\boe\ber\brs\bs is built on Solaris 10 or higher.
+
+     mailsub           Subject of the mail sent to the _\bm_\ba_\bi_\bl_\bt_\bo user.  The
+                       escape %h will expand to the host name of the machine.
+                       Default is ``*** SECURITY information for %h ***''.
+
+     maxseq            The maximum sequence number that will be substituted
+                       for the ``%{seq}'' escape in the I/O log file (see the
+                       _\bi_\bo_\bl_\bo_\bg_\b__\bd_\bi_\br description above for more information).
+                       While the value substituted for ``%{seq}'' is in base
+                       36, _\bm_\ba_\bx_\bs_\be_\bq itself should be expressed in decimal.
+                       Values larger than 2176782336 (which corresponds to the
+                       base 36 sequence number ``ZZZZZZ'') will be silently
+                       truncated to 2176782336.  The default value is
+                       2176782336.
+
+                       Once the local sequence number reaches the value of
+                       _\bm_\ba_\bx_\bs_\be_\bq, it will ``roll over'' to zero, after which
+                       s\bsu\bud\bdo\boe\ber\brs\bs will truncate and re-use any existing I/O log
+                       pathnames.
+
+                       This setting is only supported by version 1.8.7 or
+                       higher.
+
+     noexec_file       As of s\bsu\bud\bdo\bo version 1.8.1 this option is no longer
+                       supported.  The path to the noexec file should now be
+                       set in the sudo.conf(4) file.
+
+     passprompt        The default prompt to use when asking for a password;
                        can be overridden via the -\b-p\bp option or the SUDO_PROMPT
                        environment variable.  The following percent (`%')
                        escape sequences are supported:
 
-                       %H  expanded to the local host name including the
-                           domain name (only if the machine's host name is
-                           fully qualified or the _\bf_\bq_\bd_\bn option is set)
+                       %H    expanded to the local host name including the
+                             domain name (only if the machine's host name is
+                             fully qualified or the _\bf_\bq_\bd_\bn option is set)
 
-                       %h  expanded to the local host name without the domain
-                           name
+                       %h    expanded to the local host name without the
+                             domain name
 
-                       %p  expanded to the user whose password is being asked
-                           for (respects the _\br_\bo_\bo_\bt_\bp_\bw, _\bt_\ba_\br_\bg_\be_\bt_\bp_\bw and _\br_\bu_\bn_\ba_\bs_\bp_\bw
-                           flags in _\bs_\bu_\bd_\bo_\be_\br_\bs)
+                       %p    expanded to the user whose password is being
+                             asked for (respects the _\br_\bo_\bo_\bt_\bp_\bw, _\bt_\ba_\br_\bg_\be_\bt_\bp_\bw and
+                             _\br_\bu_\bn_\ba_\bs_\bp_\bflags in _\bs_\bu_\bd_\bo_\be_\br_\bs)
 
-                       %U  expanded to the login name of the user the command
-                           will be run as (defaults to root)
+                       %U    expanded to the login name of the user the
+                             command will be run as (defaults to root)
 
-                       %u  expanded to the invoking user's login name
+                       %u    expanded to the invoking user's login name
 
-                       %%  two consecutive % characters are collapsed into a
-                           single % character
+                       %%    two consecutive % characters are collapsed into a
+                             single % character
 
-                       The default value is Password:.
+                       The default value is ``Password:''.
 
-       role            The default SELinux role to use when constructing a new
+     privs             The default Solaris privileges to use when constructing
+                       a new privilege set for a command.  This is passed to
+                       the executing process via the inherited privilege set,
+                       but is bounded by the limit privileges.  If the _\bp_\br_\bi_\bv_\bs
+                       option is specified but the _\bl_\bi_\bm_\bi_\bt_\bp_\br_\bi_\bv_\bs option is not,
+                       the limit privileges of the executing process is set to
+                       _\bp_\br_\bi_\bv_\bs.  The default privileges may be overridden on a
+                       per-command basis in _\bs_\bu_\bd_\bo_\be_\br_\bs.  This option is only
+                       available if s\bsu\bud\bdo\boe\ber\brs\bs is built on Solaris 10 or higher.
+
+     role              The default SELinux role to use when constructing a new
                        security context to run the command.  The default role
                        may be overridden on a per-command basis in _\bs_\bu_\bd_\bo_\be_\br_\bs or
                        via command line options.  This option is only
-                       available whe s\bsu\bud\bdo\bo is built with SELinux support.
+                       available when s\bsu\bud\bdo\bo is built with SELinux support.
 
-       runas_default   The default user to run commands as if the -\b-u\bu option is
+     runas_default     The default user to run commands as if the -\b-u\bu option is
                        not specified on the command line.  This defaults to
                        root.
 
-       syslog_badpri   Syslog priority to use when user authenticates
+     syslog_badpri     Syslog priority to use when user authenticates
                        unsuccessfully.  Defaults to alert.
 
                        The following syslog priorities are supported: a\bal\ble\ber\brt\bt,
                        c\bcr\bri\bit\bt, d\bde\beb\bbu\bug\bg, e\bem\bme\ber\brg\bg, e\ber\brr\br, i\bin\bnf\bfo\bo, n\bno\bot\bti\bic\bce\be, and w\bwa\bar\brn\bni\bin\bng\bg.
 
-       syslog_goodpri  Syslog priority to use when user authenticates
+     syslog_goodpri    Syslog priority to use when user authenticates
                        successfully.  Defaults to notice.
 
-                       See syslog_badpri for the list of supported syslog
+                       See _\bs_\by_\bs_\bl_\bo_\bg_\b__\bb_\ba_\bd_\bp_\br_\bi for the list of supported syslog
                        priorities.
 
-       sudoers_locale  Locale to use when parsing the sudoers file, logging
+     sudoers_locale    Locale to use when parsing the sudoers file, logging
                        commands, and sending email.  Note that changing the
                        locale may affect how sudoers is interpreted.  Defaults
-                       to "C".
+                       to ``C''.
 
-       timestampdir    The directory in which s\bsu\bud\bdo\bo stores its timestamp files.
-                       The default is _\b/_\bv_\ba_\br_\b/_\ba_\bd_\bm_\b/_\bs_\bu_\bd_\bo.
+     timestampdir      The directory in which s\bsu\bud\bdo\bo stores its time stamp
+                       files.  The default is _\b/_\bv_\ba_\br_\b/_\ba_\bd_\bm_\b/_\bs_\bu_\bd_\bo.
 
-       timestampowner  The owner of the timestamp directory and the timestamps
-                       stored therein.  The default is root.
+     timestampowner    The owner of the time stamp directory and the time
+                       stamps stored therein.  The default is root.
 
-       type            The default SELinux type to use when constructing a new
+     type              The default SELinux type to use when constructing a new
                        security context to run the command.  The default type
                        may be overridden on a per-command basis in _\bs_\bu_\bd_\bo_\be_\br_\bs or
                        via command line options.  This option is only
-                       available whe s\bsu\bud\bdo\bo is built with SELinux support.
+                       available when s\bsu\bud\bdo\bo is built with SELinux support.
 
-       S\bSt\btr\bri\bin\bng\bgs\bs t\bth\bha\bat\bt c\bca\ban\bn b\bbe\be u\bus\bse\bed\bd i\bin\bn a\ba b\bbo\boo\bol\ble\bea\ban\bn c\bco\bon\bnt\bte\bex\bxt\bt:
+     S\bSt\btr\bri\bin\bng\bgs\bs t\bth\bha\bat\bt c\bca\ban\bn b\bbe\be u\bus\bse\bed\bd i\bin\bn a\ba b\bbo\boo\bol\ble\bea\ban\bn c\bco\bon\bnt\bte\bex\bxt\bt:
 
-       env_file    The _\be_\bn_\bv_\b__\bf_\bi_\bl_\be options specifies the fully qualified path to
-                   file containing variables to be set in the environment of
+     env_file      The _\be_\bn_\bv_\b__\bf_\bi_\bl_\be option specifies the fully qualified path to a
+                   file containing variables to be set in the environment of
                    the program being run.  Entries in this file should either
-                   be of the form VARIABLE=value or export VARIABLE=value.
-                   The value may optionally be surrounded by single or double
-                   quotes.  Variables in this file are subject to other s\bsu\bud\bdo\bo
-                   environment settings such as _\be_\bn_\bv_\b__\bk_\be_\be_\bp and _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk.
+                   be of the form ``VARIABLE=value'' or ``export
+                   VARIABLE=value''.  The value may optionally be surrounded
+                   by single or double quotes.  Variables in this file are
+                   subject to other s\bsu\bud\bdo\bo environment settings such as _\be_\bn_\bv_\b__\bk_\be_\be_\bp
+                   and _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk.
 
-       exempt_group
-                   Users in this group are exempt from password and PATH
+     exempt_group  Users in this group are exempt from password and PATH
                    requirements.  The group name specified should not include
                    a % prefix.  This is not set by default.
 
-       group_plugin
-                   A string containing a _\bs_\bu_\bd_\bo_\be_\br_\bs group plugin with optional
-                   arguments.  This can be used to implement support for the
-                   nonunix_group syntax described earlier.  The string should
-                   consist of the plugin path, either fully-qualified or
-                   relative to the _\b/_\bu_\bs_\br_\b/_\bl_\bo_\bc_\ba_\bl_\b/_\bl_\bi_\bb_\be_\bx_\be_\bc directory, followed by
-                   any configuration arguments the plugin requires.  These
+     group_plugin  A string containing a _\bs_\bu_\bd_\bo_\be_\br_\bs group plugin with optional
+                   arguments.  The string should consist of the plugin path,
+                   either fully-qualified or relative to the
+                   _\b/_\bu_\bs_\br_\b/_\bl_\bo_\bc_\ba_\bl_\b/_\bl_\bi_\bb_\be_\bx_\be_\bc_\b/_\bs_\bu_\bd_\bo directory, followed by any
+                   configuration arguments the plugin requires.  These
                    arguments (if any) will be passed to the plugin's
                    initialization function.  If arguments are present, the
-                   string must be enclosed in double quotes (").
-
-                   For example, given _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\b-_\bg_\br_\bo_\bu_\bp, a group file in Unix
-                   group format, the sample group plugin can be used:
+                   string must be enclosed in double quotes ("").
 
-                       Defaults group_plugin="sample_group.so /etc/sudo-group"
+                   For more information see GROUP PROVIDER PLUGINS.
 
-                   For more information see _\bs_\bu_\bd_\bo_\b__\bp_\bl_\bu_\bg_\bi_\bn(4).
-
-       lecture     This option controls when a short lecture will be printed
+     lecture       This option controls when a short lecture will be printed
                    along with the password prompt.  It has the following
                    possible values:
 
@@ -1203,67 +1491,66 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                    Negating the option results in a value of _\bn_\be_\bv_\be_\br being used.
                    The default value is _\bo_\bn_\bc_\be.
 
-       lecture_file
-                   Path to a file containing an alternate s\bsu\bud\bdo\bo lecture that
+     lecture_file  Path to a file containing an alternate s\bsu\bud\bdo\bo lecture that
                    will be used in place of the standard lecture if the named
                    file exists.  By default, s\bsu\bud\bdo\bo uses a built-in lecture.
 
-       listpw      This option controls when a password will be required when
+     listpw        This option controls when a password will be required when
                    a user runs s\bsu\bud\bdo\bo with the -\b-l\bl option.  It has the following
                    possible values:
 
-                   all     All the user's _\bs_\bu_\bd_\bo_\be_\br_\bs entries for the current host
-                           must have the NOPASSWD flag set to avoid entering a
-                           password.
+                   all       All the user's _\bs_\bu_\bd_\bo_\be_\br_\bs entries for the current
+                             host must have the NOPASSWD flag set to avoid
+                             entering a password.
 
-                   always  The user must always enter a password to use the -\b-l\bl
-                           option.
+                   always    The user must always enter a password to use the
+                             -\b-l\boption.
 
-                   any     At least one of the user's _\bs_\bu_\bd_\bo_\be_\br_\bs entries for the
-                           current host must have the NOPASSWD flag set to
-                           avoid entering a password.
+                   any       At least one of the user's _\bs_\bu_\bd_\bo_\be_\br_\bs entries for
+                             the current host must have the NOPASSWD flag set
+                             to avoid entering a password.
 
-                   never   The user need never enter a password to use the -\b-l\bl
-                           option.
+                   never     The user need never enter a password to use the
+                             -\b-l\boption.
 
                    If no value is specified, a value of _\ba_\bn_\by is implied.
                    Negating the option results in a value of _\bn_\be_\bv_\be_\br being used.
                    The default value is _\ba_\bn_\by.
 
-       logfile     Path to the s\bsu\bud\bdo\bo log file (not the syslog log file).
+     logfile       Path to the s\bsu\bud\bdo\bo log file (not the syslog log file).
                    Setting a path turns on logging to a file; negating this
                    option turns it off.  By default, s\bsu\bud\bdo\bo logs via syslog.
 
-       mailerflags Flags to use when invoking mailer. Defaults to -\b-t\bt.
+     mailerflags   Flags to use when invoking mailer. Defaults to -\b-t\bt.
 
-       mailerpath  Path to mail program used to send warning mail.  Defaults
+     mailerpath    Path to mail program used to send warning mail.  Defaults
                    to the path to sendmail found at configure time.
 
-       mailfrom    Address to use for the "from" address when sending warning
-                   and error mail.  The address should be enclosed in double
-                   quotes (") to protect against s\bsu\bud\bdo\bo interpreting the @ sign.
-                   Defaults to the name of the user running s\bsu\bud\bdo\bo.
+     mailfrom      Address to use for the ``from'' address when sending
+                   warning and error mail.  The address should be enclosed in
+                   double quotes ("") to protect against s\bsu\bud\bdo\bo interpreting the
+                   @ sign.  Defaults to the name of the user running s\bsu\bud\bdo\bo.
 
-       mailto      Address to send warning and error mail to.  The address
-                   should be enclosed in double quotes (") to protect against
+     mailto        Address to send warning and error mail to.  The address
+                   should be enclosed in double quotes ("") to protect against
                    s\bsu\bud\bdo\bo interpreting the @ sign.  Defaults to root.
 
-       secure_path Path used for every command run from s\bsu\bud\bdo\bo.  If you don't
+     secure_path   Path used for every command run from s\bsu\bud\bdo\bo.  If you don't
                    trust the people running s\bsu\bud\bdo\bo to have a sane PATH
                    environment variable you may want to use this.  Another use
-                   is if you want to have the "root path" be separate from the
-                   "user path."  Users in the group specified by the
+                   is if you want to have the ``root path'' be separate from
+                   the ``user path''.  Users in the group specified by the
                    _\be_\bx_\be_\bm_\bp_\bt_\b__\bg_\br_\bo_\bu_\bp option are not affected by _\bs_\be_\bc_\bu_\br_\be_\b__\bp_\ba_\bt_\bh.  This
                    option is not set by default.
 
-       syslog      Syslog facility if syslog is being used for logging (negate
+     syslog        Syslog facility if syslog is being used for logging (negate
                    to disable syslog logging).  Defaults to auth.
 
                    The following syslog facilities are supported: a\bau\but\bth\bhp\bpr\bri\biv\bv (if
                    your OS supports it), a\bau\but\bth\bh, d\bda\bae\bem\bmo\bon\bn, u\bus\bse\ber\br, l\blo\boc\bca\bal\bl0\b0, l\blo\boc\bca\bal\bl1\b1,
                    l\blo\boc\bca\bal\bl2\b2, l\blo\boc\bca\bal\bl3\b3, l\blo\boc\bca\bal\bl4\b4, l\blo\boc\bca\bal\bl5\b5, l\blo\boc\bca\bal\bl6\b6, and l\blo\boc\bca\bal\bl7\b7.
 
-       verifypw    This option controls when a password will be required when
+     verifypw      This option controls when a password will be required when
                    a user runs s\bsu\bud\bdo\bo with the -\b-v\bv option.  It has the following
                    possible values:
 
@@ -1285,10 +1572,10 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                    Negating the option results in a value of _\bn_\be_\bv_\be_\br being used.
                    The default value is _\ba_\bl_\bl.
 
-       L\bLi\bis\bst\bts\bs t\bth\bha\bat\bt c\bca\ban\bn b\bbe\be u\bus\bse\bed\bd i\bin\bn a\ba b\bbo\boo\bol\ble\bea\ban\bn c\bco\bon\bnt\bte\bex\bxt\bt:
+     L\bLi\bis\bst\bts\bs t\bth\bha\bat\bt c\bca\ban\bn b\bbe\be u\bus\bse\bed\bd i\bin\bn a\ba b\bbo\boo\bol\ble\bea\ban\bn c\bco\bon\bnt\bte\bex\bxt\bt:
 
-       env_check       Environment variables to be removed from the user's
-                       environment if the variable's value contains % or /
+     env_check         Environment variables to be removed from the user's
+                       environment if the variable's value contains `%' or `/'
                        characters.  This can be used to guard against printf-
                        style format vulnerabilities in poorly-written
                        programs.  The argument may be a double-quoted, space-
@@ -1300,21 +1587,21 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        env_check will be preserved in the environment if they
                        pass the aforementioned check.  The default list of
                        environment variables to check is displayed when s\bsu\bud\bdo\bo
-                       is run by root with the _\b-_\bV option.
+                       is run by root with the -\b-V\bV option.
 
-       env_delete      Environment variables to be removed from the user's
+     env_delete        Environment variables to be removed from the user's
                        environment when the _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt option is not in effect.
                        The argument may be a double-quoted, space-separated
                        list or a single value without double-quotes.  The list
                        can be replaced, added to, deleted from, or disabled by
                        using the =, +=, -=, and ! operators respectively.  The
                        default list of environment variables to remove is
-                       displayed when s\bsu\bud\bdo\bo is run by root with the _\b-_\bV option.
+                       displayed when s\bsu\bud\bdo\bo is run by root with the -\b-V\bV option.
                        Note that many operating systems will remove
                        potentially dangerous variables from the environment of
                        any setuid process (such as s\bsu\bud\bdo\bo).
 
-       env_keep        Environment variables to be preserved in the user's
+     env_keep          Environment variables to be preserved in the user's
                        environment when the _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt option is in effect.
                        This allows fine-grained control over the environment
                        s\bsu\bud\bdo\bo-spawned processes will receive.  The argument may
@@ -1323,364 +1610,631 @@ S\bSU\bUD\bDO\bOE\bER\bRS\bS O\bOP\bPT\bTI\bIO\bON\bNS\bS
                        added to, deleted from, or disabled by using the =, +=,
                        -=, and ! operators respectively.  The default list of
                        variables to keep is displayed when s\bsu\bud\bdo\bo is run by root
-                       with the _\b-_\bV option.
+                       with the -\b-V\bV option.
+
+G\bGR\bRO\bOU\bUP\bP P\bPR\bRO\bOV\bVI\bID\bDE\bER\bR P\bPL\bLU\bUG\bGI\bIN\bNS\bS
+     The s\bsu\bud\bdo\boe\ber\brs\bs plugin supports its own plugin interface to allow non-Unix
+     group lookups which can query a group source other than the standard Unix
+     group database.  This can be used to implement support for the
+     nonunix_group syntax described earlier.
+
+     Group provider plugins are specified via the _\bg_\br_\bo_\bu_\bp_\b__\bp_\bl_\bu_\bg_\bi_\bn Defaults
+     setting.  The argument to _\bg_\br_\bo_\bu_\bp_\b__\bp_\bl_\bu_\bg_\bi_\bn should consist of the plugin path,
+     either fully-qualified or relative to the _\b/_\bu_\bs_\br_\b/_\bl_\bo_\bc_\ba_\bl_\b/_\bl_\bi_\bb_\be_\bx_\be_\bc_\b/_\bs_\bu_\bd_\bo
+     directory, followed by any configuration options the plugin requires.
+     These options (if specified) will be passed to the plugin's
+     initialization function.  If options are present, the string must be
+     enclosed in double quotes ("").
+
+     The following group provider plugins are installed by default:
+
+     group_file
+               The _\bg_\br_\bo_\bu_\bp_\b__\bf_\bi_\bl_\be plugin supports an alternate group file that
+               uses the same syntax as the _\b/_\be_\bt_\bc_\b/_\bg_\br_\bo_\bu_\bp file.  The path to the
+               group file should be specified as an option to the plugin.  For
+               example, if the group file to be used is _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\b-_\bg_\br_\bo_\bu_\bp:
+
+               Defaults group_plugin="group_file.so /etc/sudo-group"
+
+     system_group
+               The _\bs_\by_\bs_\bt_\be_\bm_\b__\bg_\br_\bo_\bu_\bp plugin supports group lookups via the standard
+               C library functions g\bge\bet\btg\bgr\brn\bna\bam\bm() and g\bge\bet\btg\bgr\bri\bid\bd().  This plugin can
+               be used in instances where the user belongs to groups not
+               present in the user's supplemental group vector.  This plugin
+               takes no options:
+
+               Defaults group_plugin=system_group.so
+
+     The group provider plugin API is described in detail in sudo_plugin(1m).
+
+L\bLO\bOG\bG F\bFO\bOR\bRM\bMA\bAT\bT
+     s\bsu\bud\bdo\boe\ber\brs\bs can log events using either syslog(3) or a simple log file.  In
+     each case the log format is almost identical.
+
+   A\bAc\bcc\bce\bep\bpt\bte\bed\bd c\bco\bom\bmm\bma\ban\bnd\bd l\blo\bog\bg e\ben\bnt\btr\bri\bie\bes\bs
+     Commands that sudo runs are logged using the following format (split into
+     multiple lines for readability):
+
+         date hostname progname: username : TTY=ttyname ; PWD=cwd ; \
+             USER=runasuser ; GROUP=runasgroup ; TSID=logid ; \
+             ENV=env_vars COMMAND=command
+
+     Where the fields are as follows:
+
+     date          The date the command was run.  Typically, this is in the
+                   format ``MMM, DD, HH:MM:SS''.  If logging via syslog(3),
+                   the actual date format is controlled by the syslog daemon.
+                   If logging to a file and the _\bl_\bo_\bg_\b__\by_\be_\ba_\br option is enabled,
+                   the date will also include the year.
+
+     hostname      The name of the host s\bsu\bud\bdo\bo was run on.  This field is only
+                   present when logging via syslog(3).
+
+     progname      The name of the program, usually _\bs_\bu_\bd_\bo or _\bs_\bu_\bd_\bo_\be_\bd_\bi_\bt.  This
+                   field is only present when logging via syslog(3).
+
+     username      The login name of the user who ran s\bsu\bud\bdo\bo.
+
+     ttyname       The short name of the terminal (e.g. ``console'',
+                   ``tty01'', or ``pts/0'') s\bsu\bud\bdo\bo was run on, or ``unknown'' if
+                   there was no terminal present.
+
+     cwd           The current working directory that s\bsu\bud\bdo\bo was run in.
+
+     runasuser     The user the command was run as.
+
+     runasgroup    The group the command was run as if one was specified on
+                   the command line.
+
+     logid         An I/O log identifier that can be used to replay the
+                   command's output.  This is only present when the _\bl_\bo_\bg_\b__\bi_\bn_\bp_\bu_\bt
+                   or _\bl_\bo_\bg_\b__\bo_\bu_\bt_\bp_\bu_\bt option is enabled.
+
+     env_vars      A list of environment variables specified on the command
+                   line, if specified.
+
+     command       The actual command that was executed.
+
+     Messages are logged using the locale specified by _\bs_\bu_\bd_\bo_\be_\br_\bs_\b__\bl_\bo_\bc_\ba_\bl_\be, which
+     defaults to the ``C'' locale.
+
+   D\bDe\ben\bni\bie\bed\bd c\bco\bom\bmm\bma\ban\bnd\bd l\blo\bog\bg e\ben\bnt\btr\bri\bie\bes\bs
+     If the user is not allowed to run the command, the reason for the denial
+     will follow the user name.  Possible reasons include:
+
+     user NOT in sudoers
+        The user is not listed in the _\bs_\bu_\bd_\bo_\be_\br_\bs file.
+
+     user NOT authorized on host
+        The user is listed in the _\bs_\bu_\bd_\bo_\be_\br_\bs file but is not allowed to run
+        commands on the host.
+
+     command not allowed
+        The user is listed in the _\bs_\bu_\bd_\bo_\be_\br_\bs file for the host but they are not
+        allowed to run the specified command.
+
+     3 incorrect password attempts
+        The user failed to enter their password after 3 tries.  The actual
+        number of tries will vary based on the number of failed attempts and
+        the value of the _\bp_\ba_\bs_\bs_\bw_\bd_\b__\bt_\br_\bi_\be_\bs option.
+
+     a password is required
+        s\bsu\bud\bdo\bo's -\b-n\bn option was specified but a password was required.
+
+     sorry, you are not allowed to set the following environment variables
+        The user specified environment variables on the command line that were
+        not allowed by _\bs_\bu_\bd_\bo_\be_\br_\bs.
+
+   E\bEr\brr\bro\bor\br l\blo\bog\bg e\ben\bnt\btr\bri\bie\bes\bs
+     If an error occurs, s\bsu\bud\bdo\boe\ber\brs\bs will log a message and, in most cases, send a
+     message to the administrator via email.  Possible errors include:
+
+     parse error in /etc/sudoers near line N
+        s\bsu\bud\bdo\boe\ber\brs\bs encountered an error when parsing the specified file.  In some
+        cases, the actual error may be one line above or below the line number
+        listed, depending on the type of error.
+
+     problem with defaults entries
+        The _\bs_\bu_\bd_\bo_\be_\br_\bs file contains one or more unknown Defaults settings.  This
+        does not prevent s\bsu\bud\bdo\bo from running, but the _\bs_\bu_\bd_\bo_\be_\br_\bs file should be
+        checked using v\bvi\bis\bsu\bud\bdo\bo.
+
+     timestamp owner (username): No such user
+        The time stamp directory owner, as specified by the _\bt_\bi_\bm_\be_\bs_\bt_\ba_\bm_\bp_\bo_\bw_\bn_\be_\br
+        setting, could not be found in the password database.
+
+     unable to open/read /etc/sudoers
+        The _\bs_\bu_\bd_\bo_\be_\br_\bs file could not be opened for reading.  This can happen
+        when the _\bs_\bu_\bd_\bo_\be_\br_\bs file is located on a remote file system that maps
+        user ID 0 to a different value.  Normally, s\bsu\bud\bdo\boe\ber\brs\bs tries to open
+        _\bs_\bu_\bd_\bo_\be_\br_\bs using group permissions to avoid this problem.  Consider
+        either changing the ownership of _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs or adding an argument
+        like ``sudoers_uid=N'' (where `N' is the user ID that owns the _\bs_\bu_\bd_\bo_\be_\br_\bs
+        file) to the end of the s\bsu\bud\bdo\boe\ber\brs\bs Plugin line in the sudo.conf(4) file.
+
+     unable to stat /etc/sudoers
+        The _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs file is missing.
+
+     /etc/sudoers is not a regular file
+        The _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs file exists but is not a regular file or symbolic
+        link.
+
+     /etc/sudoers is owned by uid N, should be 0
+        The _\bs_\bu_\bd_\bo_\be_\br_\bs file has the wrong owner.  If you wish to change the
+        _\bs_\bu_\bd_\bo_\be_\br_\bs file owner, please add ``sudoers_uid=N'' (where `N' is the
+        user ID that owns the _\bs_\bu_\bd_\bo_\be_\br_\bs file) to the s\bsu\bud\bdo\boe\ber\brs\bs Plugin line in the
+        sudo.conf(4) file.
+
+     /etc/sudoers is world writable
+        The permissions on the _\bs_\bu_\bd_\bo_\be_\br_\bs file allow all users to write to it.
+        The _\bs_\bu_\bd_\bo_\be_\br_\bs file must not be world-writable, the default file mode is
+        0440 (readable by owner and group, writable by none).  The default
+        mode may be changed via the ``sudoers_mode'' option to the s\bsu\bud\bdo\boe\ber\brs\bs
+        Plugin line in the sudo.conf(4) file.
+
+     /etc/sudoers is owned by gid N, should be 1
+        The _\bs_\bu_\bd_\bo_\be_\br_\bs file has the wrong group ownership.  If you wish to change
+        the _\bs_\bu_\bd_\bo_\be_\br_\bs file group ownership, please add ``sudoers_gid=N'' (where
+        `N' is the group ID that owns the _\bs_\bu_\bd_\bo_\be_\br_\bs file) to the s\bsu\bud\bdo\boe\ber\brs\bs Plugin
+        line in the sudo.conf(4) file.
+
+     unable to open /var/adm/sudo/username/ttyname
+        _\bs_\bu_\bd_\bo_\be_\br_\bs was unable to read or create the user's time stamp file.
+
+     unable to write to /var/adm/sudo/username/ttyname
+        _\bs_\bu_\bd_\bo_\be_\br_\bs was unable to write to the user's time stamp file.
+
+     unable to mkdir to /var/adm/sudo/username
+        _\bs_\bu_\bd_\bo_\be_\br_\bs was unable to create the user's time stamp directory.
+
+   N\bNo\bot\bte\bes\bs o\bon\bn l\blo\bog\bgg\bgi\bin\bng\bg v\bvi\bia\ba s\bsy\bys\bsl\blo\bog\bg
+     By default, _\bs_\bu_\bd_\bo_\be_\br_\bs logs messages via syslog(3).  The _\bd_\ba_\bt_\be, _\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be, and
+     _\bp_\br_\bo_\bg_\bn_\ba_\bm_\be fields are added by the syslog daemon, not _\bs_\bu_\bd_\bo_\be_\br_\bs itself.  As
+     such, they may vary in format on different systems.
+
+     On most systems, syslog(3) has a relatively small log buffer.  To prevent
+     the command line arguments from being truncated, s\bsu\bud\bdo\boe\ber\brs\bs will split up
+     log messages that are larger than 960 characters (not including the date,
+     hostname, and the string ``sudo'').  When a message is split, additional
+     parts will include the string ``(command continued)'' after the user name
+     and before the continued command line arguments.
+
+   N\bNo\bot\bte\bes\bs o\bon\bn l\blo\bog\bgg\bgi\bin\bng\bg t\bto\bo a\ba f\bfi\bil\ble\be
+     If the _\bl_\bo_\bg_\bf_\bi_\bl_\be option is set, _\bs_\bu_\bd_\bo_\be_\br_\bs will log to a local file, such as
+     _\b/_\bv_\ba_\br_\b/_\bl_\bo_\bg_\b/_\bs_\bu_\bd_\bo.  When logging to a file, _\bs_\bu_\bd_\bo_\be_\br_\bs uses a format similar to
+     syslog(3), with a few important differences:
+
+     1.   The _\bp_\br_\bo_\bg_\bn_\ba_\bm_\be and _\bh_\bo_\bs_\bt_\bn_\ba_\bm_\be fields are not present.
+
+     2.   If the _\bl_\bo_\bg_\b__\by_\be_\ba_\br option is enabled, the date will also include the
+          year.
+
+     3.   Lines that are longer than _\bl_\bo_\bg_\bl_\bi_\bn_\be_\bl_\be_\bn characters (80 by default) are
+          word-wrapped and continued on the next line with a four character
+          indent.  This makes entries easier to read for a human being, but
+          makes it more difficult to use grep(1) on the log files.  If the
+          _\bl_\bo_\bg_\bl_\bi_\bn_\be_\bl_\be_\bn option is set to 0 (or negated with a `!'), word wrap
+          will be disabled.
 
 F\bFI\bIL\bLE\bES\bS
-       _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs            List of who can run what
+     _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\b._\bc_\bo_\bn_\bf            Sudo front end configuration
+
+     _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs              List of who can run what
 
-       _\b/_\be_\bt_\bc_\b/_\bg_\br_\bo_\bu_\bp              Local groups file
+     _\b/_\be_\bt_\bc_\b/_\bg_\br_\bo_\bu_\bp                Local groups file
 
-       _\b/_\be_\bt_\bc_\b/_\bn_\be_\bt_\bg_\br_\bo_\bu_\bp           List of network groups
+     _\b/_\be_\bt_\bc_\b/_\bn_\be_\bt_\bg_\br_\bo_\bu_\bp             List of network groups
 
-       _\b/_\bv_\ba_\br_\b/_\bl_\bo_\bg_\b/_\bs_\bu_\bd_\bo_\b-_\bi_\bo        I/O log files
+     _\b/_\bv_\ba_\br_\b/_\bl_\bo_\bg_\b/_\bs_\bu_\bd_\bo_\b-_\bi_\bo          I/O log files
 
-       _\b/_\bv_\ba_\br_\b/_\ba_\bd_\bm_\b/_\bs_\bu_\bd_\bo           Directory containing time stamps for the
+     _\b/_\bv_\ba_\br_\b/_\ba_\bd_\bm_\b/_\bs_\bu_\bd_\bo             Directory containing time stamps for the
                                _\bs_\bu_\bd_\bo_\be_\br_\bs security policy
 
-       _\b/_\be_\bt_\bc_\b/_\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt        Initial environment for -\b-i\bi mode on Linux and
-                               AIX
+     _\b/_\be_\bt_\bc_\b/_\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt          Initial environment for -\b-i\bi mode on AIX and
+                               Linux systems
 
 E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
-       Below are example _\bs_\bu_\bd_\bo_\be_\br_\bs entries.  Admittedly, some of these are a bit
-       contrived.  First, we allow a few environment variables to pass and
-       then define our _\ba_\bl_\bi_\ba_\bs_\be_\bs:
-
-        # Run X applications through sudo; HOME is used to find the
-        # .Xauthority file.  Note that other programs use HOME to find
-        # configuration files and this may lead to privilege escalation!
-        Defaults env_keep += "DISPLAY HOME"
-
-        # User alias specification
-        User_Alias     FULLTIMERS = millert, mikef, dowdy
-        User_Alias     PARTTIMERS = bostley, jwfox, crawl
-        User_Alias     WEBMASTERS = will, wendy, wim
-
-        # Runas alias specification
-        Runas_Alias    OP = root, operator
-        Runas_Alias    DB = oracle, sybase
-        Runas_Alias    ADMINGRP = adm, oper
-
-        # Host alias specification
-        Host_Alias     SPARC = bigtime, eclipse, moet, anchor :\
-                       SGI = grolsch, dandelion, black :\
-                       ALPHA = widget, thalamus, foobar :\
-                       HPPA = boa, nag, python
-        Host_Alias     CUNETS = 128.138.0.0/255.255.0.0
-        Host_Alias     CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
-        Host_Alias     SERVERS = master, mail, www, ns
-        Host_Alias     CDROM = orion, perseus, hercules
-
-        # Cmnd alias specification
-        Cmnd_Alias     DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
-                               /usr/sbin/restore, /usr/sbin/rrestore
-        Cmnd_Alias     KILL = /usr/bin/kill
-        Cmnd_Alias     PRINTING = /usr/sbin/lpc, /usr/bin/lprm
-        Cmnd_Alias     SHUTDOWN = /usr/sbin/shutdown
-        Cmnd_Alias     HALT = /usr/sbin/halt
-        Cmnd_Alias     REBOOT = /usr/sbin/reboot
-        Cmnd_Alias     SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
-                                /usr/local/bin/tcsh, /usr/bin/rsh, \
-                                /usr/local/bin/zsh
-        Cmnd_Alias     SU = /usr/bin/su
-        Cmnd_Alias     PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less
+     Below are example _\bs_\bu_\bd_\bo_\be_\br_\bs entries.  Admittedly, some of these are a bit
+     contrived.  First, we allow a few environment variables to pass and then
+     define our _\ba_\bl_\bi_\ba_\bs_\be_\bs:
+
+     # Run X applications through sudo; HOME is used to find the
+     # .Xauthority file.  Note that other programs use HOME to find
+     # configuration files and this may lead to privilege escalation!
+     Defaults env_keep += "DISPLAY HOME"
+
+     # User alias specification
+     User_Alias      FULLTIMERS = millert, mikef, dowdy
+     User_Alias      PARTTIMERS = bostley, jwfox, crawl
+     User_Alias      WEBMASTERS = will, wendy, wim
+
+     # Runas alias specification
+     Runas_Alias     OP = root, operator
+     Runas_Alias     DB = oracle, sybase
+     Runas_Alias     ADMINGRP = adm, oper
+
+     # Host alias specification
+     Host_Alias      SPARC = bigtime, eclipse, moet, anchor :\
+                     SGI = grolsch, dandelion, black :\
+                     ALPHA = widget, thalamus, foobar :\
+                     HPPA = boa, nag, python
+     Host_Alias      CUNETS = 128.138.0.0/255.255.0.0
+     Host_Alias      CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
+     Host_Alias      SERVERS = master, mail, www, ns
+     Host_Alias      CDROM = orion, perseus, hercules
+
+     # Cmnd alias specification
+     Cmnd_Alias      DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
+                             /usr/sbin/restore, /usr/sbin/rrestore,\
+                             sha224:0GomF8mNN3wlDt1HD9XldjJ3SNgpFdbjO1+NsQ== \
+                             /home/operator/bin/start_backups
+     Cmnd_Alias      KILL = /usr/bin/kill
+     Cmnd_Alias      PRINTING = /usr/sbin/lpc, /usr/bin/lprm
+     Cmnd_Alias      SHUTDOWN = /usr/sbin/shutdown
+     Cmnd_Alias      HALT = /usr/sbin/halt
+     Cmnd_Alias      REBOOT = /usr/sbin/reboot
+     Cmnd_Alias      SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh,\
+                              /usr/local/bin/tcsh, /usr/bin/rsh,\
+                              /usr/local/bin/zsh
+     Cmnd_Alias      SU = /usr/bin/su
+     Cmnd_Alias      PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less
+
+     Here we override some of the compiled in default values.  We want s\bsu\bud\bdo\bo to
+     log via syslog(3) using the _\ba_\bu_\bt_\bh facility in all cases.  We don't want to
+     subject the full time staff to the s\bsu\bud\bdo\bo lecture, user m\bmi\bil\bll\ble\ber\brt\bt need not
+     give a password, and we don't want to reset the LOGNAME, USER or USERNAME
+     environment variables when running commands as root.  Additionally, on
+     the machines in the _\bS_\bE_\bR_\bV_\bE_\bR_\bS Host_Alias, we keep an additional local log
+     file and make sure we log the year in each log line since the log entries
+     will be kept around for several years.  Lastly, we disable shell escapes
+     for the commands in the PAGERS Cmnd_Alias (_\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bm_\bo_\br_\be, _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bp_\bg and
+     _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bl_\be_\bs_\bs).
 
-       Here we override some of the compiled in default values.  We want s\bsu\bud\bdo\bo
-       to log via _\bs_\by_\bs_\bl_\bo_\bg(3) using the _\ba_\bu_\bt_\bh facility in all cases.  We don't
-       want to subject the full time staff to the s\bsu\bud\bdo\bo lecture, user m\bmi\bil\bll\ble\ber\brt\bt
-       need not give a password, and we don't want to reset the LOGNAME, USER
-       or USERNAME environment variables when running commands as root.
-       Additionally, on the machines in the _\bS_\bE_\bR_\bV_\bE_\bR_\bS Host_Alias, we keep an
-       additional local log file and make sure we log the year in each log
-       line since the log entries will be kept around for several years.
-       Lastly, we disable shell escapes for the commands in the PAGERS
-       Cmnd_Alias (_\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bm_\bo_\br_\be, _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bp_\bg and _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bl_\be_\bs_\bs).
+     # Override built-in defaults
+     Defaults                syslog=auth
+     Defaults>root           !set_logname
+     Defaults:FULLTIMERS     !lecture
+     Defaults:millert        !authenticate
+     Defaults@SERVERS        log_year, logfile=/var/log/sudo.log
+     Defaults!PAGERS         noexec
 
-        # Override built-in defaults
-        Defaults               syslog=auth
-        Defaults>root          !set_logname
-        Defaults:FULLTIMERS    !lecture
-        Defaults:millert       !authenticate
-        Defaults@SERVERS       log_year, logfile=/var/log/sudo.log
-        Defaults!PAGERS        noexec
+     The _\bU_\bs_\be_\br _\bs_\bp_\be_\bc_\bi_\bf_\bi_\bc_\ba_\bt_\bi_\bo_\bn is the part that actually determines who may run
+     what.
 
-       The _\bU_\bs_\be_\br _\bs_\bp_\be_\bc_\bi_\bf_\bi_\bc_\ba_\bt_\bi_\bo_\bn is the part that actually determines who may run
-       what.
+     root            ALL = (ALL) ALL
+     %wheel          ALL = (ALL) ALL
 
-        root           ALL = (ALL) ALL
-        %wheel         ALL = (ALL) ALL
+     We let r\bro\boo\bot\bt and any user in group w\bwh\bhe\bee\bel\bl run any command on any host as
+     any user.
 
-       We let r\bro\boo\bot\bt and any user in group w\bwh\bhe\bee\bel\bl run any command on any host as
-       any user.
+     FULLTIMERS      ALL = NOPASSWD: ALL
 
-        FULLTIMERS     ALL = NOPASSWD: ALL
+     Full time sysadmins (m\bmi\bil\bll\ble\ber\brt\bt, m\bmi\bik\bke\bef\bf, and d\bdo\bow\bwd\bdy\by) may run any command on
+     any host without authenticating themselves.
 
-       Full time sysadmins (m\bmi\bil\bll\ble\ber\brt\bt, m\bmi\bik\bke\bef\bf, and d\bdo\bow\bwd\bdy\by) may run any command on
-       any host without authenticating themselves.
+     PARTTIMERS      ALL = ALL
 
-        PARTTIMERS     ALL = ALL
+     Part time sysadmins b\bbo\bos\bst\btl\ble\bey\by, j\bjw\bwf\bfo\box\bx, and c\bcr\bra\baw\bwl\bl) may run any command on any
+     host but they must authenticate themselves first (since the entry lacks
+     the NOPASSWD tag).
 
-       Part time sysadmins (b\bbo\bos\bst\btl\ble\bey\by, j\bjw\bwf\bfo\box\bx, and c\bcr\bra\baw\bwl\bl) may run any command on
-       any host but they must authenticate themselves first (since the entry
-       lacks the NOPASSWD tag).
+     jack            CSNETS = ALL
 
-        jack           CSNETS = ALL
+     The user j\bja\bac\bck\bk may run any command on the machines in the _\bC_\bS_\bN_\bE_\bT_\bS alias
+     (the networks 128.138.243.0, 128.138.204.0, and 128.138.242.0).  Of those
+     networks, only 128.138.204.0 has an explicit netmask (in CIDR notation)
+     indicating it is a class C network.  For the other networks in _\bC_\bS_\bN_\bE_\bT_\bS,
+     the local machine's netmask will be used during matching.
 
-       The user j\bja\bac\bck\bk may run any command on the machines in the _\bC_\bS_\bN_\bE_\bT_\bS alias
-       (the networks 128.138.243.0, 128.138.204.0, and 128.138.242.0).  Of
-       those networks, only 128.138.204.0 has an explicit netmask (in CIDR
-       notation) indicating it is a class C network.  For the other networks
-       in _\bC_\bS_\bN_\bE_\bT_\bS, the local machine's netmask will be used during matching.
+     lisa            CUNETS = ALL
 
-        lisa           CUNETS = ALL
+     The user l\bli\bis\bsa\ba may run any command on any host in the _\bC_\bU_\bN_\bE_\bT_\bS alias (the
+     class B network 128.138.0.0).
 
-       The user l\bli\bis\bsa\ba may run any command on any host in the _\bC_\bU_\bN_\bE_\bT_\bS alias (the
-       class B network 128.138.0.0).
+     operator        ALL = DUMPS, KILL, SHUTDOWN, HALT, REBOOT, PRINTING,\
+                     sudoedit /etc/printcap, /usr/oper/bin/
 
-        operator       ALL = DUMPS, KILL, SHUTDOWN, HALT, REBOOT, PRINTING,\
-                       sudoedit /etc/printcap, /usr/oper/bin/
+     The o\bop\bpe\ber\bra\bat\bto\bor\br user may run commands limited to simple maintenance.  Here,
+     those are commands related to backups, killing processes, the printing
+     system, shutting down the system, and any commands in the directory
+     _\b/_\bu_\bs_\br_\b/_\bo_\bp_\be_\br_\b/_\bb_\bi_\bn_\b/.  Note that one command in the DUMPS Cmnd_Alias includes a
+     sha224 digest, _\b/_\bh_\bo_\bm_\be_\b/_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b/_\bb_\bi_\bn_\b/_\bs_\bt_\ba_\br_\bt_\b__\bb_\ba_\bc_\bk_\bu_\bp_\bs.  This is because the
+     directory containing the script is writable by the operator user.  If the
+     script is modified (resulting in a digest mismatch) it will no longer be
+     possible to run it via s\bsu\bud\bdo\bo.
 
-       The o\bop\bpe\ber\bra\bat\bto\bor\br user may run commands limited to simple maintenance.
-       Here, those are commands related to backups, killing processes, the
-       printing system, shutting down the system, and any commands in the
-       directory _\b/_\bu_\bs_\br_\b/_\bo_\bp_\be_\br_\b/_\bb_\bi_\bn_\b/.
+     joe             ALL = /usr/bin/su operator
 
-        joe            ALL = /usr/bin/su operator
+     The user j\bjo\boe\be may only su(1) to operator.
 
-       The user j\bjo\boe\be may only _\bs_\bu(1) to operator.
+     pete            HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
 
-        pete           HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
+     %opers          ALL = (: ADMINGRP) /usr/sbin/
 
-        %opers         ALL = (: ADMINGRP) /usr/sbin/
+     Users in the o\bop\bpe\ber\brs\bs group may run commands in _\b/_\bu_\bs_\br_\b/_\bs_\bb_\bi_\bn_\b/ as themselves
+     with any group in the _\bA_\bD_\bM_\bI_\bN_\bG_\bR_\bP Runas_Alias (the a\bad\bdm\bm and o\bop\bpe\ber\br groups).
 
-       Users in the o\bop\bpe\ber\brs\bs group may run commands in _\b/_\bu_\bs_\br_\b/_\bs_\bb_\bi_\bn_\b/ as themselves
-       with any group in the _\bA_\bD_\bM_\bI_\bN_\bG_\bR_\bP Runas_Alias (the a\bad\bdm\bm and o\bop\bpe\ber\br groups).
+     The user p\bpe\bet\bte\be is allowed to change anyone's password except for root on
+     the _\bH_\bP_\bP_\bA machines.  Note that this assumes passwd(1) does not take
+     multiple user names on the command line.
 
-       The user p\bpe\bet\bte\be is allowed to change anyone's password except for root on
-       the _\bH_\bP_\bP_\bA machines.  Note that this assumes _\bp_\ba_\bs_\bs_\bw_\bd(1) does not take
-       multiple user names on the command line.
+     bob             SPARC = (OP) ALL : SGI = (OP) ALL
 
-        bob            SPARC = (OP) ALL : SGI = (OP) ALL
+     The user b\bbo\bob\bb may run anything on the _\bS_\bP_\bA_\bR_\bC and _\bS_\bG_\bI machines as any user
+     listed in the _\bO_\bP Runas_Alias (r\bro\boo\bot\bt and o\bop\bpe\ber\bra\bat\bto\bor\br.)
 
-       The user b\bbo\bob\bb may run anything on the _\bS_\bP_\bA_\bR_\bC and _\bS_\bG_\bI machines as any user
-       listed in the _\bO_\bP Runas_Alias (r\bro\boo\bot\bt and o\bop\bpe\ber\bra\bat\bto\bor\br).
+     jim             +biglab = ALL
 
-        jim            +biglab = ALL
+     The user j\bji\bim\bm may run any command on machines in the _\bb_\bi_\bg_\bl_\ba_\bb netgroup.
+     s\bsu\bud\bdo\bo knows that ``biglab'' is a netgroup due to the `+' prefix.
 
-       The user j\bji\bim\bm may run any command on machines in the _\bb_\bi_\bg_\bl_\ba_\bb netgroup.
-       s\bsu\bud\bdo\bo knows that "biglab" is a netgroup due to the '+' prefix.
+     +secretaries    ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser
 
-        +secretaries   ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser
+     Users in the s\bse\bec\bcr\bre\bet\bta\bar\bri\bie\bes\bs netgroup need to help manage the printers as
+     well as add and remove users, so they are allowed to run those commands
+     on all machines.
 
-       Users in the s\bse\bec\bcr\bre\bet\bta\bar\bri\bie\bes\bs netgroup need to help manage the printers as
-       well as add and remove users, so they are allowed to run those commands
-       on all machines.
+     fred            ALL = (DB) NOPASSWD: ALL
 
-        fred           ALL = (DB) NOPASSWD: ALL
+     The user f\bfr\bre\bed\bd can run commands as any user in the _\bD_\bB Runas_Alias (o\bor\bra\bac\bcl\ble\be
+     or s\bsy\byb\bba\bas\bse\be) without giving a password.
 
-       The user f\bfr\bre\bed\bd can run commands as any user in the _\bD_\bB Runas_Alias
-       (o\bor\bra\bac\bcl\ble\be or s\bsy\byb\bba\bas\bse\be) without giving a password.
+     john            ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*
 
-        john           ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*
+     On the _\bA_\bL_\bP_\bH_\bA machines, user j\bjo\boh\bhn\bn may su to anyone except root but he is
+     not allowed to specify any options to the su(1) command.
 
-       On the _\bA_\bL_\bP_\bH_\bA machines, user j\bjo\boh\bhn\bn may su to anyone except root but he is
-       not allowed to specify any options to the _\bs_\bu(1) command.
+     jen             ALL, !SERVERS = ALL
 
-        jen            ALL, !SERVERS = ALL
+     The user j\bje\ben\bn may run any command on any machine except for those in the
+     _\bS_\bE_\bR_\bV_\bE_\bR_\bS Host_Alias (master, mail, www and ns).
 
-       The user j\bje\ben\bn may run any command on any machine except for those in the
-       _\bS_\bE_\bR_\bV_\bE_\bR_\bS Host_Alias (master, mail, www and ns).
+     jill            SERVERS = /usr/bin/, !SU, !SHELLS
 
-        jill           SERVERS = /usr/bin/, !SU, !SHELLS
+     For any machine in the _\bS_\bE_\bR_\bV_\bE_\bR_\bS Host_Alias, j\bji\bil\bll\bl may run any commands in
+     the directory _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/ except for those commands belonging to the _\bS_\bU and
+     _\bS_\bH_\bE_\bL_\bL_\bS Cmnd_Aliases.
 
-       For any machine in the _\bS_\bE_\bR_\bV_\bE_\bR_\bS Host_Alias, j\bji\bil\bll\bl may run any commands in
-       the directory _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/ except for those commands belonging to the _\bS_\bU
-       and _\bS_\bH_\bE_\bL_\bL_\bS Cmnd_Aliases.
+     steve           CSNETS = (operator) /usr/local/op_commands/
 
-        steve          CSNETS = (operator) /usr/local/op_commands/
+     The user s\bst\bte\bev\bve\be may run any command in the directory
+     /usr/local/op_commands/ but only as user operator.
 
-       The user s\bst\bte\bev\bve\be may run any command in the directory
-       /usr/local/op_commands/ but only as user operator.
+     matt            valkyrie = KILL
 
-        matt           valkyrie = KILL
+     On his personal workstation, valkyrie, m\bma\bat\btt\bt needs to be able to kill hung
+     processes.
 
-       On his personal workstation, valkyrie, m\bma\bat\btt\bt needs to be able to kill
-       hung processes.
+     WEBMASTERS      www = (www) ALL, (root) /usr/bin/su www
 
-        WEBMASTERS     www = (www) ALL, (root) /usr/bin/su www
+     On the host www, any user in the _\bW_\bE_\bB_\bM_\bA_\bS_\bT_\bE_\bR_\bS User_Alias (will, wendy, and
+     wim), may run any command as user www (which owns the web pages) or
+     simply su(1) to www.
 
-       On the host www, any user in the _\bW_\bE_\bB_\bM_\bA_\bS_\bT_\bE_\bR_\bS User_Alias (will, wendy,
-       and wim), may run any command as user www (which owns the web pages) or
-       simply _\bs_\bu(1) to www.
+     ALL             CDROM = NOPASSWD: /sbin/umount /CDROM,\
+                     /sbin/mount -o nosuid,nodev /dev/cd0a /CDROM
 
-        ALL            CDROM = NOPASSWD: /sbin/umount /CDROM,\
-                       /sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM
-
-       Any user may mount or unmount a CD-ROM on the machines in the CDROM
-       Host_Alias (orion, perseus, hercules) without entering a password.
-       This is a bit tedious for users to type, so it is a prime candidate for
-       encapsulating in a shell script.
+     Any user may mount or unmount a CD-ROM on the machines in the CDROM
+     Host_Alias (orion, perseus, hercules) without entering a password.  This
+     is a bit tedious for users to type, so it is a prime candidate for
+     encapsulating in a shell script.
 
 S\bSE\bEC\bCU\bUR\bRI\bIT\bTY\bY N\bNO\bOT\bTE\bES\bS
-       It is generally not effective to "subtract" commands from ALL using the
-       '!' operator.  A user can trivially circumvent this by copying the
-       desired command to a different name and then executing that.  For
-       example:
-
-           bill        ALL = ALL, !SU, !SHELLS
-
-       Doesn't really prevent b\bbi\bil\bll\bl from running the commands listed in _\bS_\bU or
-       _\bS_\bH_\bE_\bL_\bL_\bS since he can simply copy those commands to a different name, or
-       use a shell escape from an editor or other program.  Therefore, these
-       kind of restrictions should be considered advisory at best (and
-       reinforced by policy).
-
-       Furthermore, if the _\bf_\ba_\bs_\bt_\b__\bg_\bl_\bo_\bb option is in use, it is not possible to
-       reliably negate commands where the path name includes globbing (aka
-       wildcard) characters.  This is because the C library's _\bf_\bn_\bm_\ba_\bt_\bc_\bh(3)
-       function cannot resolve relative paths.  While this is typically only
-       an inconvenience for rules that grant privileges, it can result in a
-       security issue for rules that subtract or revoke privileges.
-
-       For example, given the following _\bs_\bu_\bd_\bo_\be_\br_\bs entry:
-
-        john   ALL = /usr/bin/passwd [a-zA-Z0-9]*, /usr/bin/chsh [a-zA-Z0-9]*,
-             /usr/bin/chfn [a-zA-Z0-9]*, !/usr/bin/* root
-
-       User j\bjo\boh\bhn\bn can still run /usr/bin/passwd root if _\bf_\ba_\bs_\bt_\b__\bg_\bl_\bo_\bb is enabled by
-       changing to _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn and running ./passwd root instead.
-
-P\bPR\bRE\bEV\bVE\bEN\bNT\bTI\bIN\bNG\bG S\bSH\bHE\bEL\bLL\bL E\bES\bSC\bCA\bAP\bPE\bES\bS
-       Once s\bsu\bud\bdo\bo executes a program, that program is free to do whatever it
-       pleases, including run other programs.  This can be a security issue
-       since it is not uncommon for a program to allow shell escapes, which
-       lets a user bypass s\bsu\bud\bdo\bo's access control and logging.  Common programs
-       that permit shell escapes include shells (obviously), editors,
-       paginators, mail and terminal programs.
-
-       There are two basic approaches to this problem:
-
-       restrict  Avoid giving users access to commands that allow the user to
-                 run arbitrary commands.  Many editors have a restricted mode
-                 where shell escapes are disabled, though s\bsu\bud\bdo\boe\bed\bdi\bit\bt is a better
-                 solution to running editors via s\bsu\bud\bdo\bo.  Due to the large
-                 number of programs that offer shell escapes, restricting
-                 users to the set of programs that do not is often unworkable.
-
-       noexec    Many systems that support shared libraries have the ability
-                 to override default library functions by pointing an
-                 environment variable (usually LD_PRELOAD) to an alternate
-                 shared library.  On such systems, s\bsu\bud\bdo\bo's _\bn_\bo_\be_\bx_\be_\bc functionality
-                 can be used to prevent a program run by s\bsu\bud\bdo\bo from executing
-                 any other programs.  Note, however, that this applies only to
-                 native dynamically-linked executables.  Statically-linked
-                 executables and foreign executables running under binary
-                 emulation are not affected.
-
-                 The _\bn_\bo_\be_\bx_\be_\bc feature is known to work on SunOS, Solaris, *BSD,
-                 Linux, IRIX, Tru64 UNIX, MacOS X, HP-UX 11.x and AIX 5.3 and
-                 above.  It should be supported on most operating systems that
-                 support the LD_PRELOAD environment variable.  Check your
-                 operating system's manual pages for the dynamic linker
-                 (usually ld.so, ld.so.1, dyld, dld.sl, rld, or loader) to see
-                 if LD_PRELOAD is supported.
-
-                 On Solaris 10 and higher, _\bn_\bo_\be_\bx_\be_\bc uses Solaris privileges
-                 instead of the LD_PRELOAD environment variable.
-
-                 To enable _\bn_\bo_\be_\bx_\be_\bc for a command, use the NOEXEC tag as
-                 documented in the User Specification section above.  Here is
-                 that example again:
-
-                  aaron  shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
-
-                 This allows user a\baa\bar\bro\bon\bn to run _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bm_\bo_\br_\be and _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bv_\bi
-                 with _\bn_\bo_\be_\bx_\be_\bc enabled.  This will prevent those two commands
-                 from executing other commands (such as a shell).  If you are
-                 unsure whether or not your system is capable of supporting
-                 _\bn_\bo_\be_\bx_\be_\bc you can always just try it out and check whether shell
-                 escapes work when _\bn_\bo_\be_\bx_\be_\bc is enabled.
-
-       Note that restricting shell escapes is not a panacea.  Programs running
-       as root are still capable of many potentially hazardous operations
-       (such as changing or overwriting files) that could lead to unintended
-       privilege escalation.  In the specific case of an editor, a safer
-       approach is to give the user permission to run s\bsu\bud\bdo\boe\bed\bdi\bit\bt.
+   L\bLi\bim\bmi\bit\bta\bat\bti\bio\bon\bns\bs o\bof\bf t\bth\bhe\be `\b`!\b!'\b' o\bop\bpe\ber\bra\bat\bto\bor\br
+     It is generally not effective to ``subtract'' commands from A\bAL\bLL\bL using the
+     `!' operator.  A user can trivially circumvent this by copying the
+     desired command to a different name and then executing that.  For
+     example:
+
+     bill    ALL = ALL, !SU, !SHELLS
+
+     Doesn't really prevent b\bbi\bil\bll\bl from running the commands listed in _\bS_\bU or
+     _\bS_\bH_\bE_\bL_\bL_\bS since he can simply copy those commands to a different name, or
+     use a shell escape from an editor or other program.  Therefore, these
+     kind of restrictions should be considered advisory at best (and
+     reinforced by policy).
+
+     In general, if a user has sudo A\bAL\bLL\bL there is nothing to prevent them from
+     creating their own program that gives them a root shell (or making their
+     own copy of a shell) regardless of any `!' elements in the user
+     specification.
+
+   S\bSe\bec\bcu\bur\bri\bit\bty\by i\bim\bmp\bpl\bli\bic\bca\bat\bti\bio\bon\bns\bs o\bof\bf _\bf_\ba_\bs_\bt_\b__\bg_\bl_\bo_\bb
+     If the _\bf_\ba_\bs_\bt_\b__\bg_\bl_\bo_\bb option is in use, it is not possible to reliably negate
+     commands where the path name includes globbing (aka wildcard) characters.
+     This is because the C library's fnmatch(3) function cannot resolve
+     relative paths.  While this is typically only an inconvenience for rules
+     that grant privileges, it can result in a security issue for rules that
+     subtract or revoke privileges.
+
+     For example, given the following _\bs_\bu_\bd_\bo_\be_\br_\bs entry:
+
+     john    ALL = /usr/bin/passwd [a-zA-Z0-9]*, /usr/bin/chsh [a-zA-Z0-9]*,\
+                   /usr/bin/chfn [a-zA-Z0-9]*, !/usr/bin/* root
+
+     User j\bjo\boh\bhn\bn can still run /usr/bin/passwd root if _\bf_\ba_\bs_\bt_\b__\bg_\bl_\bo_\bb is enabled by
+     changing to _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn and running ./passwd root instead.
+
+   P\bPr\bre\bev\bve\ben\bnt\bti\bin\bng\bg s\bsh\bhe\bel\bll\bl e\bes\bsc\bca\bap\bpe\bes\bs
+     Once s\bsu\bud\bdo\bo executes a program, that program is free to do whatever it
+     pleases, including run other programs.  This can be a security issue
+     since it is not uncommon for a program to allow shell escapes, which lets
+     a user bypass s\bsu\bud\bdo\bo's access control and logging.  Common programs that
+     permit shell escapes include shells (obviously), editors, paginators,
+     mail and terminal programs.
+
+     There are two basic approaches to this problem:
+
+     restrict  Avoid giving users access to commands that allow the user to
+               run arbitrary commands.  Many editors have a restricted mode
+               where shell escapes are disabled, though s\bsu\bud\bdo\boe\bed\bdi\bit\bt is a better
+               solution to running editors via s\bsu\bud\bdo\bo.  Due to the large number
+               of programs that offer shell escapes, restricting users to the
+               set of programs that do not is often unworkable.
+
+     noexec    Many systems that support shared libraries have the ability to
+               override default library functions by pointing an environment
+               variable (usually LD_PRELOAD) to an alternate shared library.
+               On such systems, s\bsu\bud\bdo\bo's _\bn_\bo_\be_\bx_\be_\bc functionality can be used to
+               prevent a program run by s\bsu\bud\bdo\bo from executing any other
+               programs.  Note, however, that this applies only to native
+               dynamically-linked executables.  Statically-linked executables
+               and foreign executables running under binary emulation are not
+               affected.
+
+               The _\bn_\bo_\be_\bx_\be_\bc feature is known to work on SunOS, Solaris, *BSD,
+               Linux, IRIX, Tru64 UNIX, MacOS X, HP-UX 11.x and AIX 5.3 and
+               above.  It should be supported on most operating systems that
+               support the LD_PRELOAD environment variable.  Check your
+               operating system's manual pages for the dynamic linker (usually
+               ld.so, ld.so.1, dyld, dld.sl, rld, or loader) to see if
+               LD_PRELOAD is supported.
+
+               On Solaris 10 and higher, _\bn_\bo_\be_\bx_\be_\bc uses Solaris privileges
+               instead of the LD_PRELOAD environment variable.
+
+               To enable _\bn_\bo_\be_\bx_\be_\bc for a command, use the NOEXEC tag as
+               documented in the User Specification section above.  Here is
+               that example again:
+
+               aaron   shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
+
+               This allows user a\baa\bar\bro\bon\bn to run _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bm_\bo_\br_\be and _\b/_\bu_\bs_\br_\b/_\bb_\bi_\bn_\b/_\bv_\bi
+               with _\bn_\bo_\be_\bx_\be_\bc enabled.  This will prevent those two commands from
+               executing other commands (such as a shell).  If you are unsure
+               whether or not your system is capable of supporting _\bn_\bo_\be_\bx_\be_\bc you
+               can always just try it out and check whether shell escapes work
+               when _\bn_\bo_\be_\bx_\be_\bc is enabled.
+
+     Note that restricting shell escapes is not a panacea.  Programs running
+     as root are still capable of many potentially hazardous operations (such
+     as changing or overwriting files) that could lead to unintended privilege
+     escalation.  In the specific case of an editor, a safer approach is to
+     give the user permission to run s\bsu\bud\bdo\boe\bed\bdi\bit\bt.
+
+   T\bTi\bim\bme\be s\bst\bta\bam\bmp\bp f\bfi\bil\ble\be c\bch\bhe\bec\bck\bks\bs
+     _\bs_\bu_\bd_\bo_\be_\br_\bs will check the ownership of its time stamp directory
+     (_\b/_\bv_\ba_\br_\b/_\ba_\bd_\bm_\b/_\bs_\bu_\bd_\bo by default) and ignore the directory's contents if it is
+     not owned by root or if it is writable by a user other than root.  On
+     systems that allow non-root users to give away files via chown(2), if the
+     time stamp directory is located in a world-writable directory (e.g.,
+     _\b/_\bt_\bm_\bp), it is possible for a user to create the time stamp directory
+     before s\bsu\bud\bdo\bo is run.  However, because _\bs_\bu_\bd_\bo_\be_\br_\bs checks the ownership and
+     mode of the directory and its contents, the only damage that can be done
+     is to ``hide'' files by putting them in the time stamp dir.  This is
+     unlikely to happen since once the time stamp dir is owned by root and
+     inaccessible by any other user, the user placing files there would be
+     unable to get them back out.
 
-S\bSE\bEC\bCU\bUR\bRI\bIT\bTY\bY N\bNO\bOT\bTE\bES\bS
-       _\bs_\bu_\bd_\bo_\be_\br_\bs will check the ownership of its time stamp directory
-       (_\b/_\bv_\ba_\br_\b/_\ba_\bd_\bm_\b/_\bs_\bu_\bd_\bo by default) and ignore the directory's contents if it is
-       not owned by root or if it is writable by a user other than root.  On
-       systems that allow non-root users to give away files via _\bc_\bh_\bo_\bw_\bn(2), if
-       the time stamp directory is located in a world-writable directory
-       (e.g., _\b/_\bt_\bm_\bp), it is possible for a user to create the time stamp
-       directory before s\bsu\bud\bdo\bo is run.  However, because _\bs_\bu_\bd_\bo_\be_\br_\bs checks the
-       ownership and mode of the directory and its contents, the only damage
-       that can be done is to "hide" files by putting them in the time stamp
-       dir.  This is unlikely to happen since once the time stamp dir is owned
-       by root and inaccessible by any other user, the user placing files
-       there would be unable to get them back out.
-
-       _\bs_\bu_\bd_\bo_\be_\br_\bs will not honor time stamps set far in the future.  Time stamps
-       with a date greater than current_time + 2 * TIMEOUT will be ignored and
-       sudo will log and complain.  This is done to keep a user from creating
-       his/her own time stamp with a bogus date on systems that allow users to
-       give away files if the time stamp directory is located in a world-
-       writable directory.
-
-       On systems where the boot time is available, _\bs_\bu_\bd_\bo_\be_\br_\bs will ignore time
-       stamps that date from before the machine booted.
-
-       Since time stamp files live in the file system, they can outlive a
-       user's login session.  As a result, a user may be able to login, run a
-       command with s\bsu\bud\bdo\bo after authenticating, logout, login again, and run
-       s\bsu\bud\bdo\bo without authenticating so long as the time stamp file's
-       modification time is within 5 minutes (or whatever the timeout is set
-       to in _\bs_\bu_\bd_\bo_\be_\br_\bs).  When the _\bt_\bt_\by_\b__\bt_\bi_\bc_\bk_\be_\bt_\bs option is enabled, the time stamp
-       has per-tty granularity but still may outlive the user's session.  On
-       Linux systems where the devpts filesystem is used, Solaris systems with
-       the devices filesystem, as well as other systems that utilize a devfs
-       filesystem that monotonically increase the inode number of devices as
-       they are created (such as Mac OS X), _\bs_\bu_\bd_\bo_\be_\br_\bs is able to determine when
-       a tty-based time stamp file is stale and will ignore it.
-       Administrators should not rely on this feature as it is not universally
-       available.
-
-       If users have sudo ALL there is nothing to prevent them from creating
-       their own program that gives them a root shell (or making their own
-       copy of a shell) regardless of any '!' elements in the user
-       specification.
+     _\bs_\bu_\bd_\bo_\be_\br_\bs will not honor time stamps set far in the future.  Time stamps
+     with a date greater than current_time + 2 * TIMEOUT will be ignored and
+     sudo will log and complain.  This is done to keep a user from creating
+     his/her own time stamp with a bogus date on systems that allow users to
+     give away files if the time stamp directory is located in a world-
+     writable directory.
+
+     On systems where the boot time is available, _\bs_\bu_\bd_\bo_\be_\br_\bs will ignore time
+     stamps that date from before the machine booted.
+
+     Since time stamp files live in the file system, they can outlive a user's
+     login session.  As a result, a user may be able to login, run a command
+     with s\bsu\bud\bdo\bo after authenticating, logout, login again, and run s\bsu\bud\bdo\bo without
+     authenticating so long as the time stamp file's modification time is
+     within 5 minutes (or whatever the timeout is set to in _\bs_\bu_\bd_\bo_\be_\br_\bs).  When
+     the _\bt_\bt_\by_\b__\bt_\bi_\bc_\bk_\be_\bt_\bs option is enabled, the time stamp has per-tty granularity
+     but still may outlive the user's session.  On Linux systems where the
+     devpts filesystem is used, Solaris systems with the devices filesystem,
+     as well as other systems that utilize a devfs filesystem that
+     monotonically increase the inode number of devices as they are created
+     (such as Mac OS X), _\bs_\bu_\bd_\bo_\be_\br_\bs is able to determine when a tty-based time
+     stamp file is stale and will ignore it.  Administrators should not rely
+     on this feature as it is not universally available.
+
+D\bDE\bEB\bBU\bUG\bGG\bGI\bIN\bNG\bG
+     Versions 1.8.4 and higher of the s\bsu\bud\bdo\boe\ber\brs\bs plugin support a flexible
+     debugging framework that can help track down what the plugin is doing
+     internally if there is a problem.  This can be configured in the
+     sudo.conf(4) file.
+
+     The s\bsu\bud\bdo\boe\ber\brs\bs plugin uses the same debug flag format as the s\bsu\bud\bdo\bo front-end:
+     _\bs_\bu_\bb_\bs_\by_\bs_\bt_\be_\bm@_\bp_\br_\bi_\bo_\br_\bi_\bt_\by.
+
+     The priorities used by s\bsu\bud\bdo\boe\ber\brs\bs, in order of decreasing severity, are:
+     _\bc_\br_\bi_\bt, _\be_\br_\br, _\bw_\ba_\br_\bn, _\bn_\bo_\bt_\bi_\bc_\be, _\bd_\bi_\ba_\bg, _\bi_\bn_\bf_\bo, _\bt_\br_\ba_\bc_\be and _\bd_\be_\bb_\bu_\bg.  Each priority,
+     when specified, also includes all priorities higher than it.  For
+     example, a priority of _\bn_\bo_\bt_\bi_\bc_\be would include debug messages logged at
+     _\bn_\bo_\bt_\bi_\bc_\be and higher.
+
+     The following subsystems are used by the s\bsu\bud\bdo\boe\ber\brs\bs plugin:
+
+     _\ba_\bl_\bi_\ba_\bs     User_Alias, Runas_Alias, Host_Alias and Cmnd_Alias processing
+
+     _\ba_\bl_\bl       matches every subsystem
+
+     _\ba_\bu_\bd_\bi_\bt     BSM and Linux audit code
+
+     _\ba_\bu_\bt_\bh      user authentication
+
+     _\bd_\be_\bf_\ba_\bu_\bl_\bt_\bs  _\bs_\bu_\bd_\bo_\be_\br_\bs _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs settings
+
+     _\be_\bn_\bv       environment handling
+
+     _\bl_\bd_\ba_\bp      LDAP-based sudoers
+
+     _\bl_\bo_\bg_\bg_\bi_\bn_\bg   logging support
+
+     _\bm_\ba_\bt_\bc_\bh     matching of users, groups, hosts and netgroups in _\bs_\bu_\bd_\bo_\be_\br_\bs
+
+     _\bn_\be_\bt_\bi_\bf     network interface handling
+
+     _\bn_\bs_\bs       network service switch handling in _\bs_\bu_\bd_\bo_\be_\br_\bs
+
+     _\bp_\ba_\br_\bs_\be_\br    _\bs_\bu_\bd_\bo_\be_\br_\bs file parsing
+
+     _\bp_\be_\br_\bm_\bs     permission setting
+
+     _\bp_\bl_\bu_\bg_\bi_\bn    The equivalent of _\bm_\ba_\bi_\bn for the plugin.
+
+     _\bp_\bt_\by       pseudo-tty related code
+
+     _\br_\bb_\bt_\br_\be_\be    redblack tree internals
+
+     _\bu_\bt_\bi_\bl      utility functions
+     For example:
+
+     Debug sudo /var/log/sudo_debug match@info,nss@info
+
+     For more information, see the sudo.conf(4) manual.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
-       _\br_\bs_\bh(1), _\bs_\bu(1), _\bf_\bn_\bm_\ba_\bt_\bc_\bh(3), _\bg_\bl_\bo_\bb(3), _\bm_\bk_\bt_\be_\bm_\bp(3), _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3),
-       _\bs_\bu_\bd_\bo_\be_\br_\bs_\b._\bl_\bd_\ba_\bp(4), _\bs_\bu_\bd_\bo_\b__\bp_\bl_\bu_\bg_\bi_\bn(1m), _\bs_\bu_\bd_\bo(1m), _\bv_\bi_\bs_\bu_\bd_\bo(1m)
+     ssh(1), su(1), fnmatch(3), glob(3), mktemp(3), strftime(3), sudo.conf(4),
+     sudoers.ldap(4), sudo_plugin(1m), sudo(1m), visudo(1m)
 
 C\bCA\bAV\bVE\bEA\bAT\bTS\bS
-       The _\bs_\bu_\bd_\bo_\be_\br_\bs file should a\bal\blw\bwa\bay\bys\bs be edited by the v\bvi\bis\bsu\bud\bdo\bo command which
-       locks the file and does grammatical checking. It is imperative that
-       _\bs_\bu_\bd_\bo_\be_\br_\bs be free of syntax errors since s\bsu\bud\bdo\bo will not run with a
-       syntactically incorrect _\bs_\bu_\bd_\bo_\be_\br_\bs file.
+     The _\bs_\bu_\bd_\bo_\be_\br_\bs file should a\bal\blw\bwa\bay\bys\bs be edited by the v\bvi\bis\bsu\bud\bdo\bo command which
+     locks the file and does grammatical checking.  It is imperative that
+     _\bs_\bu_\bd_\bo_\be_\br_\bs be free of syntax errors since s\bsu\bud\bdo\bo will not run with a
+     syntactically incorrect _\bs_\bu_\bd_\bo_\be_\br_\bs file.
 
-       When using netgroups of machines (as opposed to users), if you store
-       fully qualified host name in the netgroup (as is usually the case), you
-       either need to have the machine's host name be fully qualified as
-       returned by the hostname command or use the _\bf_\bq_\bd_\bn option in _\bs_\bu_\bd_\bo_\be_\br_\bs.
+     When using netgroups of machines (as opposed to users), if you store
+     fully qualified host name in the netgroup (as is usually the case), you
+     either need to have the machine's host name be fully qualified as
+     returned by the hostname command or use the _\bf_\bq_\bd_\bn option in _\bs_\bu_\bd_\bo_\be_\br_\bs.
 
 B\bBU\bUG\bGS\bS
-       If you feel you have found a bug in s\bsu\bud\bdo\bo, please submit a bug report at
-       http://www.sudo.ws/sudo/bugs/
+     If you feel you have found a bug in s\bsu\bud\bdo\bo, please submit a bug report at
+     http://www.sudo.ws/sudo/bugs/
 
 S\bSU\bUP\bPP\bPO\bOR\bRT\bT
-       Limited free support is available via the sudo-users mailing list, see
-       http://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or search
-       the archives.
+     Limited free support is available via the sudo-users mailing list, see
+     http://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or search the
+     archives.
 
 D\bDI\bIS\bSC\bCL\bLA\bAI\bIM\bME\bER\bR
-       s\bsu\bud\bdo\bo is provided ``AS IS'' and any express or implied warranties,
-       including, but not limited to, the implied warranties of
-       merchantability and fitness for a particular purpose are disclaimed.
-       See the LICENSE file distributed with s\bsu\bud\bdo\bo or
-       http://www.sudo.ws/sudo/license.html for complete details.
-
-
+     s\bsu\bud\bdo\bo is provided ``AS IS'' and any express or implied warranties,
+     including, but not limited to, the implied warranties of merchantability
+     and fitness for a particular purpose are disclaimed.  See the LICENSE
+     file distributed with s\bsu\bud\bdo\bo or http://www.sudo.ws/sudo/license.html for
+     complete details.
 
-1.8.3                         September 16, 2011                    SUDOERS(4)
+Sudo 1.8.7                      April 30, 2013                      Sudo 1.8.7