]> granicus.if.org Git - sudo/commitdiff
Bring back the "secure_path" Defaults option now that Defaults take
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 12 Nov 2004 16:19:19 +0000 (16:19 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 12 Nov 2004 16:19:19 +0000 (16:19 +0000)
effect before the path is searched.

CHANGES
def_data.c
def_data.h
def_data.in
defaults.c
env.c
find_path.c
sudoers.cat
sudoers.man.in
sudoers.pod
visudo.c

diff --git a/CHANGES b/CHANGES
index b8100fa0690944912581e1b55b4051c4e7d398a1..6e60923d9b0590959556f6f1645ceba9bba5e449 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1734,29 +1734,36 @@ Sudo 1.6.8 released.
 
 Sudo 1.6.8p1 released.
 
-549) New monitor functionality for systems with systrace(4).  When tracing
+549) Bash exported functions and the CDPATH variable are now stripped from
+     the environment passed to the program to be executed.
+
+Sudo 1.6.8p2 released.
+
+550) New monitor functionality for systems with systrace(4).  When tracing
      is enabled sudo will fork a daemon that traces the command and
      intercepts and execve() calls and allows/denies the call based on
      a sudoers lookup.  Also updates the command's environment with
      the SUDO_* variables if supported by the version of systrace(4).
 
-550) Added support for multiple sudoers file via #include.
+551) Added support for multiple sudoers file via #include.
 
-551) An empty sudoers file is no longer a parse error.
+552) An empty sudoers file is no longer a parse error.
 
-552) Fixed error handling if the lexer runs out of memory.
+553) Fixed error handling if the lexer runs out of memory.
 
-553) Optimized lexer slightly by removing use of unput() and removing
+554) Optimized lexer slightly by removing use of unput() and removing
      some ambiguity with the Default keyword.
 
-554) Wildcard matches on commands now use glob() and stat() so 
+555) Wildcard matches on commands now use glob() and stat() so 
      that relative paths work correctly in conjunction with wildcards.
 
-555) Rewritten parser that converts sudoers into a set of data structures.
+556) Rewritten parser that converts sudoers into a set of data structures.
      This eliminates ordering issues and makes it possible to apply
      sudoers Defaults entries before searching for the command.
 
-556) Visudo will now warn about aliases that are defined but not used.
+557) Visudo will now warn about aliases that are defined but not used.
 
-557) "sudo -l" now takes an optional username which lets root see other
+558) "sudo -l" now takes an optional username which lets root see other
      users' privs.
+
+559) The "secure_path" run-time Defaults option has been restored.
index 6cfa9dbce10d4c4d705ff38bebb84da45bf1c4b2..7b1200519b07efb98c30cd32ff1f610e7a4aa342 100644 (file)
@@ -219,6 +219,10 @@ struct sudo_defs_types sudo_defs_table[] = {
        "Default user to run commands as: %s",
        NULL,
        set_runaspw,
+    }, {
+       "secure_path", T_STR|T_BOOL,
+       "Value to override user's $PATH with: %s",
+       NULL,
     }, {
        "editor", T_STR|T_PATH,
        "Path to the editor for use by visudo: %s",
index fde88336ffeaf3a42895bedace529806372da35f..359716bbacc10ee849d126f104abccdf290c620e 100644 (file)
 #define I_PASSPROMPT            47
 #define def_runas_default       (sudo_defs_table[48].sd_un.str)
 #define I_RUNAS_DEFAULT         48
-#define def_editor              (sudo_defs_table[49].sd_un.str)
-#define I_EDITOR                49
-#define def_listpw              (sudo_defs_table[50].sd_un.tuple)
-#define I_LISTPW                50
-#define def_verifypw            (sudo_defs_table[51].sd_un.tuple)
-#define I_VERIFYPW              51
-#define def_noexec              (sudo_defs_table[52].sd_un.flag)
-#define I_NOEXEC                52
-#define def_noexec_file         (sudo_defs_table[53].sd_un.str)
-#define I_NOEXEC_FILE           53
-#define def_env_check           (sudo_defs_table[54].sd_un.list)
-#define I_ENV_CHECK             54
-#define def_env_delete          (sudo_defs_table[55].sd_un.list)
-#define I_ENV_DELETE            55
-#define def_env_keep            (sudo_defs_table[56].sd_un.list)
-#define I_ENV_KEEP              56
-#define def_ignore_local_sudoers (sudo_defs_table[57].sd_un.flag)
-#define I_IGNORE_LOCAL_SUDOERS  57
-#define def_monitor             (sudo_defs_table[58].sd_un.flag)
-#define I_MONITOR               58
+#define def_secure_path         (sudo_defs_table[49].sd_un.str)
+#define I_SECURE_PATH           49
+#define def_editor              (sudo_defs_table[50].sd_un.str)
+#define I_EDITOR                50
+#define def_listpw              (sudo_defs_table[51].sd_un.tuple)
+#define I_LISTPW                51
+#define def_verifypw            (sudo_defs_table[52].sd_un.tuple)
+#define I_VERIFYPW              52
+#define def_noexec              (sudo_defs_table[53].sd_un.flag)
+#define I_NOEXEC                53
+#define def_noexec_file         (sudo_defs_table[54].sd_un.str)
+#define I_NOEXEC_FILE           54
+#define def_env_check           (sudo_defs_table[55].sd_un.list)
+#define I_ENV_CHECK             55
+#define def_env_delete          (sudo_defs_table[56].sd_un.list)
+#define I_ENV_DELETE            56
+#define def_env_keep            (sudo_defs_table[57].sd_un.list)
+#define I_ENV_KEEP              57
+#define def_ignore_local_sudoers (sudo_defs_table[58].sd_un.flag)
+#define I_IGNORE_LOCAL_SUDOERS  58
+#define def_monitor             (sudo_defs_table[59].sd_un.flag)
+#define I_MONITOR               59
 
 enum def_tupple {
        never,
index a5bb36d5630a2c799c354b848f6153fbbd7479c1..9a0d53f1605e39e7c4b8b2737b901a708ad7ba49 100644 (file)
@@ -156,6 +156,9 @@ runas_default
        T_STR
        "Default user to run commands as: %s"
        *set_runaspw
+secure_path
+       T_STR|T_BOOL
+       "Value to override user's $PATH with: %s"
 editor
        T_STR|T_PATH
        "Path to the editor for use by visudo: %s"
index 64e648df9dc987695c61a43ba44ceb305a088922..68101e10868c474cb06b9031d2a93e9b5eedb935 100644 (file)
@@ -475,6 +475,9 @@ init_defaults()
 #endif
 #ifdef EXEMPTGROUP
     def_exempt_group = estrdup(EXEMPTGROUP);
+#endif
+#ifdef SECURE_PATH
+    def_secure_path = estrdup(SECURE_PATH);
 #endif
     def_editor = estrdup(EDITOR);
 #ifdef _PATH_SUDO_NOEXEC
diff --git a/env.c b/env.c
index ef04f30be154e5aa8f77c9f0b7d3703ed2cdbf9e..2b58707e3b76173a405de5c673208a123613552a 100644 (file)
--- a/env.c
+++ b/env.c
@@ -467,10 +467,9 @@ rebuild_env(envp, sudo_mode, noexec)
     if (!ISSET(didvar, DID_PATH))
        insert_env(format_env("PATH", _PATH_DEFPATH, VNULL), 0);
 
-#ifdef SECURE_PATH
     /* Replace the PATH envariable with a secure one. */
-    insert_env(format_env("PATH", SECURE_PATH, VNULL), 1);
-#endif
+    if (def_secure_path && !user_is_exempt())
+       insert_env(format_env("PATH", def_secure_path, VNULL), 1);
 
     /* Set $USER and $LOGNAME to target if "set_logname" is true. */
     if (def_set_logname && runas_pw->pw_name) {
index c141e4ef5046ce99fcdb1a7e3340042f01241a6f..38916c16992cac62a53d60942d9bc0e9fe441b14 100644 (file)
@@ -92,11 +92,9 @@ find_path(infile, outfile, sbp, path)
     }
 
     /* Use PATH passed in unless SECURE_PATH is in effect.  */
-#ifdef SECURE_PATH
-    if (!user_is_exempt())
-       path = SECURE_PATH;
-#endif /* SECURE_PATH */
-    if (path == NULL)
+    if (def_secure_path && !user_is_exempt())
+       path = def_secure_path;
+    else if (path == NULL)
        return(NOT_FOUND);
     path = estrdup(path);
     origpath = path;
index dcef4048f2d81327f546faefce02ff81d81e5e75..a5b2e8dc49afb825ba6dda45f0c8c4d7660e19a8 100644 (file)
@@ -61,7 +61,7 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
 
 
-1.6.9                    October 26, 2004                       1
+1.6.9                   November 12, 2004                       1
 
 
 
@@ -127,7 +127,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
 
-1.6.9                    October 26, 2004                       2
+1.6.9                   November 12, 2004                       2
 
 
 
@@ -193,7 +193,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
 
-1.6.9                    October 26, 2004                       3
+1.6.9                   November 12, 2004                       3
 
 
 
@@ -259,7 +259,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
 
-1.6.9                    October 26, 2004                       4
+1.6.9                   November 12, 2004                       4
 
 
 
@@ -276,7 +276,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
        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
+                   PATH itself is not modified.  This flag is _\bo_\bn
                    by default.
 
        mail_always Send mail to the _\bm_\ba_\bi_\bl_\bt_\bo user every time a
@@ -325,7 +325,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
 
-1.6.9                    October 26, 2004                       5
+1.6.9                   November 12, 2004                       5
 
 
 
@@ -391,7 +391,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
 
-1.6.9                    October 26, 2004                       6
+1.6.9                   November 12, 2004                       6
 
 
 
@@ -426,7 +426,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
                    set _\bf_\bq_\bd_\bn.  This flag is _\bo_\bf_\bf by default.
 
        insults     If set, s\bsu\bud\bdo\bo will insult users when they enter
-                   an incorrect password.  This flag is _\bo_\bf_\bf by
+                   an incorrect password.  This flag is _\bo_\bn by
                    default.
 
        requiretty  If set, s\bsu\bud\bdo\bo will only run when the user is
@@ -447,7 +447,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
                    is to place a colon-separated list of editors
                    in the editor variable.  v\bvi\bis\bsu\bud\bdo\bo will then only
                    use the EDITOR or VISUAL if they match a value
-                   specified in editor.  This flag is off by
+                   specified in editor.  This flag is on by
                    default.
 
        rootpw      If set, s\bsu\bud\bdo\bo will prompt for the root password
@@ -457,7 +457,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
 
-1.6.9                    October 26, 2004                       7
+1.6.9                   November 12, 2004                       7
 
 
 
@@ -509,21 +509,21 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
                    TERM is copied unaltered from the old environ­
                    ment.  The other variables are set to default
                    values (possibly modified by the value of the
-                   _\bs_\be_\bt_\b__\bl_\bo_\bg_\bn_\ba_\bm_\be option).  If s\bsu\bud\bdo\bo was compiled
-                   with the SECURE_PATH option, its value will be
-                   used for the PATH environment variable.  Other
-                   variables may be preserved with the _\be_\bn_\bv_\b__\bk_\be_\be_\bp
-                   option.
+                   _\bs_\be_\bt_\b__\bl_\bo_\bg_\bn_\ba_\bm_\be 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.  Other variables
+                   may be preserved with the _\be_\bn_\bv_\b__\bk_\be_\be_\bp option.
 
        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.
 
 
 
-1.6.9                    October 26, 2004                       8
+1.6.9                   November 12, 2004                       8
 
 
 
@@ -532,8 +532,6 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
-                   _\bo_\bf_\bf by default.
-
        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
@@ -586,10 +584,12 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
        timestamp_timeout
                    Number of minutes that can elapse before s\bsu\bud\bdo\bo
                    will ask for a passwd again.  The default is
+                   5.  Set this to 0 to always prompt for a pass­
+                   word.  If set to a value less than 0 the
 
 
 
-1.6.9                    October 26, 2004                       9
+1.6.9                   November 12, 2004                       9
 
 
 
@@ -598,8 +598,6 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
-                   5.  Set this to 0 to always prompt for a pass­
-                   word.  If set to a value less than 0 the
                    user's timestamp will never expire.  This can
                    be used to allow users to create or delete
                    their own timestamps via sudo -v and sudo -k
@@ -652,10 +650,12 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
                    %H      expanded to the local hostname includ­
                            ing the domain name (on if the
+                           machine's hostname is fully qualified
+                           or the _\bf_\bq_\bd_\bn option is set)
 
 
 
-1.6.9                    October 26, 2004                      10
+1.6.9                   November 12, 2004                      10
 
 
 
@@ -664,9 +664,6 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
-                           machine's hostname is fully qualified
-                           or the _\bf_\bq_\bd_\bn option is set)
-
                    %%      two consecutive % characters are col­
                            laped into a single % character
 
@@ -718,10 +715,13 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
                    The default value is _\bo_\bn_\bc_\be.
 
+       lecture_file
+                   Path to a file containing an alternate s\bsu\bud\bdo\bo
+                   lecture that will be used in place of the
 
 
 
-1.6.9                    October 26, 2004                      11
+1.6.9                   November 12, 2004                      11
 
 
 
@@ -730,9 +730,6 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
-       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.
 
        logfile     Path to the s\bsu\bud\bdo\bo log file (not the syslog log
@@ -741,7 +738,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
        syslog      Syslog facility if syslog is being used for
                    logging (negate to disable syslog logging).
-                   Defaults to local2.
+                   Defaults to authpriv.
 
        mailerpath  Path to mail program used to send warning
                    mail.  Defaults to the path to sendmail found
@@ -760,6 +757,15 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
                    and PATH requirements.  This is not set by
                    default.
 
+       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 _\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 is not set by default.
+
        verifypw    This option controls when a password will be
                    required when a user runs s\bsu\bud\bdo\bo with the -\b-v\bv
                    flag.  It has the following possible values:
@@ -779,22 +785,22 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
                    always  The user must always enter a password
                            to use the -\b-v\bv flag.
 
-                   The default value is `all'.
 
-       listpw      This option controls when a password will be
-                   required when a user runs s\bsu\bud\bdo\bo with the -\b-l\bl
-                   flag.  It has the following possible values:
 
+1.6.9                   November 12, 2004                      12
 
 
-1.6.9                    October 26, 2004                      12
 
 
 
+SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
-SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
+                   The default value is `all'.
 
+       listpw      This option controls when a password will be
+                   required when a user runs s\bsu\bud\bdo\bo with the -\b-l\bl
+                   flag.  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
@@ -844,16 +850,10 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
        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 con­
-                   trol over the environment s\bsu\bud\bdo\bo-spawned pro­
-                   cesses will receive.  The argument may be a
-                   double-quoted, space-separated list or a sin­
-                   gle value without double-quotes.  The list can
-                   be replaced, added to, deleted from, or
 
 
 
-1.6.9                    October 26, 2004                      13
+1.6.9                   November 12, 2004                      13
 
 
 
@@ -862,9 +862,15 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
-                   disabled by using the =, +=, -=, and ! opera­
-                   tors respectively.  This list has no default
-                   members.
+                   is in effect.  This allows fine-grained con­
+                   trol over the environment s\bsu\bud\bdo\bo-spawned pro­
+                   cesses will receive.  The argument may be a
+                   double-quoted, space-separated list or a sin­
+                   gle value without double-quotes.  The list can
+                   be replaced, added to, deleted from, or dis­
+                   abled by using the =, +=, -=, and ! operators
+                   respectively.  This list has no default mem­
+                   bers.
 
        When logging via _\bs_\by_\bs_\bl_\bo_\bg(3), s\bsu\bud\bdo\bo accepts the following
        values for the syslog facility (the value of the s\bsy\bys\bsl\blo\bog\bg
@@ -910,23 +916,24 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
        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.
 
-       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
 
+1.6.9                   November 12, 2004                      14
 
 
-1.6.9                    October 26, 2004                      14
 
 
 
+SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
-SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
+        $ 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:
 
+        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.
@@ -961,7 +968,7 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
         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 exempt_group option.
+       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
@@ -975,24 +982,25 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
        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 dynamically-linked executable
-       from running further commands itself.
 
-       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
 
+1.6.9                   November 12, 2004                      15
 
 
-1.6.9                    October 26, 2004                      15
 
 
 
+SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
-SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
+       can be used to prevent a dynamically-linked executable
+       from running further commands itself.
+
+       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
 
        See the "PREVENTING SHELL ESCAPES" section below for more
        details on how NOEXEC works and whether or not it will
@@ -1039,26 +1047,24 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
        Note that a forward slash ('/') will n\bno\bot\bt be matched by
        wildcards used in the pathname.  When matching the command
-       line arguments, however, a slash d\bdo\boe\bes\bs get matched by wild­
-       cards.  This is to make a path like:
-
-           /usr/bin/*
+       line arguments, however, a slash d\bdo\boe\bes\bs get matched by
 
-       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.
 
 
+1.6.9                   November 12, 2004                      16
 
 
 
 
-1.6.9                    October 26, 2004                      16
-
 
+SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
+       wildcards.  This is to make a path like:
 
-SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
+           /usr/bin/*
 
+       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.
 
        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
 
@@ -1108,16 +1114,10 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
        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).
 
 
 
-1.6.9                    October 26, 2004                      17
+1.6.9                   November 12, 2004                      17
 
 
 
@@ -1126,6 +1126,13 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
+       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.
 
@@ -1165,6 +1172,26 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
         Host_Alias     SERVERS = master, mail, www, ns
         Host_Alias     CDROM = orion, perseus, hercules
 
+
+
+
+
+
+
+
+
+
+
+
+1.6.9                   November 12, 2004                      18
+
+
+
+
+
+SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
+
+
         # Cmnd alias specification
         Cmnd_Alias     DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
                                /usr/sbin/restore, /usr/sbin/rrestore
@@ -1180,18 +1207,6 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\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
-
-
-
-1.6.9                    October 26, 2004                      18
-
-
-
-
-
-SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
-
-
        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 or USER
@@ -1231,34 +1246,34 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
         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.
 
-        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).
 
-        operator       ALL = DUMPS, KILL, SHUTDOWN, HALT, REBOOT, PRINTING,\
-                       sudoedit /etc/printcap, /usr/oper/bin/
+1.6.9                   November 12, 2004                      19
 
-       The o\bop\bpe\ber\bra\bat\bto\bor\br user may run commands limited to simple
 
 
 
-1.6.9                    October 26, 2004                      19
 
+SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
+       _\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
 
-SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
+       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/
 
-       maintenance.  Here, those are commands related to backups,
+       The o\bop\bpe\ber\bra\bat\bto\bor\br user may run commands limited to simple main­
+       tenance.  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/.
 
@@ -1298,6 +1313,17 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
         john           ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*
 
+
+
+1.6.9                   November 12, 2004                      20
+
+
+
+
+
+SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
+
+
        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 give _\bs_\bu(1) any flags.
 
@@ -1313,17 +1339,6 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
        any commands in the directory /usr/bin/ except for those
        commands belonging to the _\bS_\bU and _\bS_\bH_\bE_\bL_\bL_\bS Cmnd_Aliases.
 
-
-
-1.6.9                    October 26, 2004                      20
-
-
-
-
-
-SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
-
-
         steve          CSNETS = (operator) /usr/local/op_commands/
 
        The user s\bst\bte\bev\bve\be may run any command in the directory
@@ -1364,6 +1379,17 @@ S\bSE\bEC\bCU\bUR\bRI\bIT\bTY\bY N\bNO\bOT\bTE\bES\bS
        restrictions should be considered advisory at best (and
        reinforced by policy).
 
+
+
+1.6.9                   November 12, 2004                      21
+
+
+
+
+
+SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
+
+
 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
@@ -1378,18 +1404,6 @@ 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
        restrict  Avoid giving users access to commands that allow
                  the user to run arbitrary commands.  Many edi­
                  tors have a restricted mode where shell escapes
-
-
-
-1.6.9                    October 26, 2004                      21
-
-
-
-
-
-SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
-
-
                  are disabled, though s\bsu\bud\bdo\boe\bed\bdi\bit\bt is a better solu­
                  tion to running editors via s\bsu\bud\bdo\bo.  Due to the
                  large number of programs that offer shell
@@ -1430,33 +1444,33 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
                  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 sup­
-                 ported.
 
-                 To enable _\bn_\bo_\be_\bx_\be_\bc for a command, use the NOEXEC
-                 tag as documented in the User Specification sec­
-                 tion 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 pre­
-                 vent those two commands from executing other
-                 commands (such as a shell).  If you are unsure
-                 whether or not your system is capable of
+1.6.9                   November 12, 2004                      22
 
 
 
-1.6.9                    October 26, 2004                      22
 
 
+SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 
 
+                 rld, or loader) to see if LD_PRELOAD is sup­
+                 ported.
 
-SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
+                 To enable _\bn_\bo_\be_\bx_\be_\bc for a command, use the NOEXEC
+                 tag as documented in the User Specification sec­
+                 tion above.  Here is that example again:
 
+                  aaron  shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
 
-                 supporting _\bn_\bo_\be_\bx_\be_\bc you can always just try it out
+                 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 pre­
+                 vent those two commands from executing other
+                 commands (such as a shell).  If you are unsure
+                 whether or not your system is capable of sup­
+                 porting _\bn_\bo_\be_\bx_\be_\bc you can always just try it out
                  and see if it works.
 
        monitor   On operating systems that support the s\bsy\bys\bst\btr\bra\bac\bce\be
@@ -1496,6 +1510,18 @@ SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
        _\br_\bs_\bh(1), _\bs_\bu(1), _\bf_\bn_\bm_\ba_\bt_\bc_\bh(3), sudo(1m), visudo(1m)
 
+
+
+
+1.6.9                   November 12, 2004                      23
+
+
+
+
+
+SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
+
+
 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 check­
@@ -1509,19 +1535,6 @@ C\bCA\bAV\bVE\bEA\bAT\bTS\bS
        hostname 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.
 
-
-
-
-
-1.6.9                    October 26, 2004                      23
-
-
-
-
-
-SUDOERS(4)             MAINTENANCE COMMANDS            SUDOERS(4)
-
-
 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/
@@ -1566,19 +1579,6 @@ D\bDI\bIS\bSC\bCL\bLA\bAI\bIM\bME\bER\bR
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-1.6.9                    October 26, 2004                      24
+1.6.9                   November 12, 2004                      24
 
 
index aa47d0a6c5db8623d6539eaebe4a329f69434845..784684d0686dff7d3c7616d63beaada58969dbb7 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "SUDOERS @mansectform@"
-.TH SUDOERS @mansectform@ "October 26, 2004" "1.6.9" "MAINTENANCE COMMANDS"
+.TH SUDOERS @mansectform@ "November 12, 2004" "1.6.9" "MAINTENANCE COMMANDS"
 .SH "NAME"
 sudoers \- list of which users may execute what
 .SH "DESCRIPTION"
@@ -570,9 +570,8 @@ following variables: \f(CW\*(C`HOME\*(C'\fR, \f(CW\*(C`LOGNAME\*(C'\fR, \f(CW\*(
 and \f(CW\*(C`USER\*(C'\fR (in addition to the \f(CW\*(C`SUDO_*\*(C'\fR variables).
 Of these, only \f(CW\*(C`TERM\*(C'\fR is copied unaltered from the old environment.
 The other variables are set to default values (possibly modified
-by the value of the \fIset_logname\fR option).  If \fBsudo\fR was compiled
-with the \f(CW\*(C`SECURE_PATH\*(C'\fR option, its value will be used for the \f(CW\*(C`PATH\*(C'\fR
-environment variable.
+by the value of the \fIset_logname\fR option).  If the \fIsecure_path\fR
+option is set, its value will be used for the \f(CW\*(C`PATH\*(C'\fR environment variable.
 Other variables may be preserved with the \fIenv_keep\fR option.
 .IP "use_loginclass" 12
 .IX Item "use_loginclass"
@@ -761,6 +760,14 @@ interpreting the \f(CW\*(C`@\*(C'\fR sign.  Defaults to \f(CW\*(C`@mailto@\*(C'\
 .IX Item "exempt_group"
 Users in this group are exempt from password and \s-1PATH\s0 requirements.
 This is not set by default.
+.IP "secure_path" 12
+.IX Item "secure_path"
+Path used for every command run from \fBsudo\fR.  If you don't trust the
+people running \fBsudo\fR to have a sane \f(CW\*(C`PATH\*(C'\fR environment variable you may
+want to use this.  Another use is if you want to have the \*(L"root path\*(R"
+be separate from the \*(L"user path.\*(R"  Users in the group specified by the
+\&\fIexempt_group\fR option are not affected by \fIsecure_path\fR.
+This is not set by default.
 .IP "verifypw" 12
 .IX Item "verifypw"
 This option controls when a password will be required when a user runs
@@ -942,7 +949,7 @@ run \fI/bin/kill\fR without a password the entry would be:
 .Ve
 .PP
 Note, however, that the \f(CW\*(C`PASSWD\*(C'\fR tag has no effect on users who are
-in the group specified by the exempt_group option.
+in the group specified by the \fIexempt_group\fR option.
 .PP
 By default, if the \f(CW\*(C`NOPASSWD\*(C'\fR tag is applied to any of the entries
 for a user on the current host, he or she will be able to run
index 65a8e9f50a05f250e8022f7f4435c100c90524d8..9146ef19ea692050b556b1a36976fa22c2a83ad6 100644 (file)
@@ -435,9 +435,8 @@ following variables: C<HOME>, C<LOGNAME>, C<PATH>, C<SHELL>, C<TERM>,
 and C<USER> (in addition to the C<SUDO_*> variables).
 Of these, only C<TERM> is copied unaltered from the old environment.
 The other variables are set to default values (possibly modified
-by the value of the I<set_logname> option).  If B<sudo> was compiled
-with the C<SECURE_PATH> option, its value will be used for the C<PATH>
-environment variable.
+by the value of the I<set_logname> option).  If the I<secure_path>
+option is set, its value will be used for the C<PATH> environment variable.
 Other variables may be preserved with the I<env_keep> option.
 
 =item use_loginclass
@@ -675,6 +674,15 @@ interpreting the C<@> sign.  Defaults to C<@mailto@>.
 Users in this group are exempt from password and PATH requirements.
 This is not set by default.
 
+=item secure_path
+
+Path used for every command run from B<sudo>.  If you don't trust the
+people running B<sudo> to have a sane C<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
+I<exempt_group> option are not affected by I<secure_path>.
+This is not set by default.
+
 =item verifypw
 
 This option controls when a password will be required when a user runs
@@ -856,7 +864,7 @@ run F</bin/kill> without a password the entry would be:
  ray   rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm
 
 Note, however, that the C<PASSWD> tag has no effect on users who are
-in the group specified by the exempt_group option.
+in the group specified by the I<exempt_group> option.
 
 By default, if the C<NOPASSWD> tag is applied to any of the entries
 for a user on the current host, he or she will be able to run
index baa637d1e22e99c8918037ca78292aeb75c9d53c..59c1cf6dc8d346a90a72f81a659003659d6004f4 100644 (file)
--- a/visudo.c
+++ b/visudo.c
@@ -528,6 +528,13 @@ init_envtables()
     return;
 }
 
+/* STUB */
+int
+user_is_exempt()
+{
+    return(FALSE);
+}
+
 /*
  * Assuming a parse error occurred, prompt the user for what they want
  * to do now.  Returns the first letter of their choice.