2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-31 14:25:15 +00:00
This commit is contained in:
Todd C. Miller
2004-08-06 01:16:29 +00:00
parent e2bc02a1de
commit e41a38e38c
4 changed files with 401 additions and 302 deletions

View File

@@ -61,7 +61,7 @@ DDEESSCCRRIIPPTTIIOONN
1.6.8 June 10, 2004 1 1.6.8 August 5, 2004 1
@@ -80,9 +80,9 @@ OOPPTTIIOONNSS
-H The --HH (_H_O_M_E) option sets the HOME environment vari<72> -H The --HH (_H_O_M_E) option sets the HOME environment vari<72>
able to the homedir of the target user (root by able to the homedir of the target user (root by
default) as specified in passwd(4). By default, ssuuddoo default) as specified in passwd(5). By default, ssuuddoo
does not modify HOME (see _s_e_t___h_o_m_e and _a_l_w_a_y_s___s_e_t___h_o_m_e does not modify HOME (see _s_e_t___h_o_m_e and _a_l_w_a_y_s___s_e_t___h_o_m_e
in sudoers(4)). in sudoers(5)).
-K The --KK (sure _k_i_l_l) option is like --kk except that it -K The --KK (sure _k_i_l_l) option is like --kk except that it
removes the user's timestamp entirely. Like --kk, this removes the user's timestamp entirely. Like --kk, this
@@ -127,7 +127,7 @@ OOPPTTIIOONNSS
1.6.8 June 10, 2004 2 1.6.8 August 5, 2004 2
@@ -182,7 +182,7 @@ SUDO(1m) MAINTENANCE COMMANDS SUDO(1m)
sage and exit. sage and exit.
-i The --ii (_s_i_m_u_l_a_t_e _i_n_i_t_i_a_l _l_o_g_i_n) option runs the shell -i The --ii (_s_i_m_u_l_a_t_e _i_n_i_t_i_a_l _l_o_g_i_n) option runs the shell
specified in the passwd(4) entry of the user that the specified in the passwd(5) entry of the user that the
command is being run as. The command name argument command is being run as. The command name argument
given to the shell begins with a - to tell the shell given to the shell begins with a - to tell the shell
to run as a login shell. ssuuddoo attempts to change to to run as a login shell. ssuuddoo attempts to change to
@@ -193,7 +193,7 @@ SUDO(1m) MAINTENANCE COMMANDS SUDO(1m)
1.6.8 June 10, 2004 3 1.6.8 August 5, 2004 3
@@ -240,7 +240,7 @@ SUDO(1m) MAINTENANCE COMMANDS SUDO(1m)
-s The --ss (_s_h_e_l_l) option runs the shell specified by the -s The --ss (_s_h_e_l_l) option runs the shell specified by the
_S_H_E_L_L environment variable if it is set or the shell _S_H_E_L_L environment variable if it is set or the shell
as specified in passwd(4). as specified in passwd(5).
-u The --uu (_u_s_e_r) option causes ssuuddoo to run the specified -u The --uu (_u_s_e_r) option causes ssuuddoo to run the specified
command as a user other than _r_o_o_t. To specify a _u_i_d command as a user other than _r_o_o_t. To specify a _u_i_d
@@ -259,7 +259,7 @@ SUDO(1m) MAINTENANCE COMMANDS SUDO(1m)
1.6.8 June 10, 2004 4 1.6.8 August 5, 2004 4
@@ -325,7 +325,7 @@ SSEECCUURRIITTYY NNOOTTEESS
1.6.8 June 10, 2004 5 1.6.8 August 5, 2004 5
@@ -367,7 +367,7 @@ SUDO(1m) MAINTENANCE COMMANDS SUDO(1m)
user an effective root shell. user an effective root shell.
EEXXAAMMPPLLEESS EEXXAAMMPPLLEESS
Note: the following examples assume suitable sudoers(4) Note: the following examples assume suitable sudoers(5)
entries. entries.
To get a file listing of an unreadable directory: To get a file listing of an unreadable directory:
@@ -391,7 +391,7 @@ EEXXAAMMPPLLEESS
1.6.8 June 10, 2004 6 1.6.8 August 5, 2004 6
@@ -416,7 +416,8 @@ EENNVVIIRROONNMMEENNTT
the --enable-shell-sets-home option), set to the --enable-shell-sets-home option), set to
homedir of the target user homedir of the target user
PATH Set to a sane value if SECURE_PATH is set PATH Set to a sane value if sudo was configured with
the --with-secure-path option
SHELL Used to determine shell to run with -s option SHELL Used to determine shell to run with -s option
@@ -452,12 +453,11 @@ AAUUTTHHOORRSS
http://www.sudo.ws/sudo/history.html for a short history http://www.sudo.ws/sudo/history.html for a short history
of ssuuddoo. of ssuuddoo.
BBUUGGSS
If you feel you have found a bug in sudo, please submit a
1.6.8 June 10, 2004 7
1.6.8 August 5, 2004 7
@@ -466,6 +466,8 @@ BBUUGGSS
SUDO(1m) MAINTENANCE COMMANDS SUDO(1m) SUDO(1m) MAINTENANCE COMMANDS SUDO(1m)
BBUUGGSS
If you feel you have found a bug in sudo, please submit a
bug report at http://www.sudo.ws/sudo/bugs/ bug report at http://www.sudo.ws/sudo/bugs/
DDIISSCCLLAAIIMMEERR DDIISSCCLLAAIIMMEERR
@@ -482,7 +484,7 @@ CCAAVVEEAATTSS
user to run commands via shell escapes, thus avoiding user to run commands via shell escapes, thus avoiding
ssuuddoo's checks. However, on most systems it is possible to ssuuddoo's checks. However, on most systems it is possible to
prevent shell escapes with ssuuddoo's _n_o_e_x_e_c functionality. prevent shell escapes with ssuuddoo's _n_o_e_x_e_c functionality.
See the sudoers(4) manual for details. See the sudoers(5) manual for details.
It is not meaningful to run the cd command directly via It is not meaningful to run the cd command directly via
sudo, e.g. sudo, e.g.
@@ -504,8 +506,8 @@ CCAAVVEEAATTSS
setuid shell scripts are generally safe). setuid shell scripts are generally safe).
SSEEEE AALLSSOO SSEEEE AALLSSOO
_g_r_e_p(1), _s_u(1), _s_t_a_t(2), _l_o_g_i_n___c_a_p(3), sudoers(4), _g_r_e_p(1), _s_u(1), _s_t_a_t(2), _l_o_g_i_n___c_a_p(3), sudoers(5),
passwd(4), visudo(1m) passwd(5), visudo(1m)
@@ -521,8 +523,6 @@ SSEEEE AALLSSOO
1.6.8 August 5, 2004 8
1.6.8 June 10, 2004 8

View File

@@ -149,7 +149,7 @@
.\" ======================================================================== .\" ========================================================================
.\" .\"
.IX Title "SUDO @mansectsu@" .IX Title "SUDO @mansectsu@"
.TH SUDO @mansectsu@ "July 30, 2004" "1.6.8" "MAINTENANCE COMMANDS" .TH SUDO @mansectsu@ "August 5, 2004" "1.6.8" "MAINTENANCE COMMANDS"
.SH "NAME" .SH "NAME"
sudo, sudoedit \- execute a command as another user sudo, sudoedit \- execute a command as another user
.SH "SYNOPSIS" .SH "SYNOPSIS"
@@ -510,8 +510,8 @@ to make the \f(CW\*(C`cd\*(C'\fR and file redirection work.
.Ve .Ve
.PP .PP
.Vb 2 .Vb 2
\& PATH Set to a sane value if SECURE_PATH has been \& PATH Set to a sane value if sudo was configured with
\& defined at configure time \& the --with-secure-path option
.Ve .Ve
.PP .PP
.Vb 1 .Vb 1

View File

@@ -1,7 +1,7 @@
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
NNAAMMEE NNAAMMEE
@@ -10,10 +10,17 @@ NNAAMMEE
DDEESSCCRRIIPPTTIIOONN DDEESSCCRRIIPPTTIIOONN
The _s_u_d_o_e_r_s file is composed of two types of entries: The _s_u_d_o_e_r_s file is composed of two types of entries:
aliases (basically variables) and user specifications aliases (basically variables) and user specifications
(which specify who may run what). The grammar of _s_u_d_o_e_r_s (which specify who may run what).
will be described below in Extended Backus-Naur Form
(EBNF). Don't despair if you don't know what EBNF is; it When multiple entries match for a user, they are applied
is fairly simple, and the definitions below are annotated. in order. Where there are conflicting values, the last
match is used (which is not necessarily the most specific
match).
The _s_u_d_o_e_r_s 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.
QQuuiicckk gguuiiddee ttoo EEBBNNFF QQuuiicckk gguuiiddee ttoo EEBBNNFF
@@ -49,6 +56,20 @@ DDEESSCCRRIIPPTTIIOONN
There are four kinds of aliases: User_Alias, Runas_Alias, There are four kinds of aliases: User_Alias, Runas_Alias,
Host_Alias and Cmnd_Alias. Host_Alias and Cmnd_Alias.
1.6.8 August 5, 2004 1
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
Alias ::= 'User_Alias' User_Alias (':' User_Alias)* | Alias ::= 'User_Alias' User_Alias (':' User_Alias)* |
'Runas_Alias' Runas_Alias (':' Runas_Alias)* | 'Runas_Alias' Runas_Alias (':' Runas_Alias)* |
'Host_Alias' Host_Alias (':' Host_Alias)* | 'Host_Alias' Host_Alias (':' Host_Alias)* |
@@ -58,18 +79,6 @@ DDEESSCCRRIIPPTTIIOONN
Runas_Alias ::= NAME '=' Runas_List Runas_Alias ::= NAME '=' Runas_List
1.6.8 June 8, 2004 1
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
Host_Alias ::= NAME '=' Host_List Host_Alias ::= NAME '=' Host_List
Cmnd_Alias ::= NAME '=' Cmnd_List Cmnd_Alias ::= NAME '=' Cmnd_List
@@ -116,6 +125,17 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
'!'* +netgroup | '!'* +netgroup |
'!'* Runas_Alias '!'* Runas_Alias
1.6.8 August 5, 2004 2
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
A Runas_List is similar to a User_List except that it can A Runas_List is similar to a User_List except that it can
also contain uids (prefixed with '#') and instead of also contain uids (prefixed with '#') and instead of
User_Aliases it can contain Runas_Aliases. Note that User_Aliases it can contain Runas_Aliases. Note that
@@ -125,17 +145,6 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
names with the same uid (e.g. root and toor), you can use names with the same uid (e.g. root and toor), you can use
a uid instead (#0 in the example given). a uid instead (#0 in the example given).
1.6.8 June 8, 2004 2
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
Host_List ::= Host | Host_List ::= Host |
Host ',' Host_List Host ',' Host_List
@@ -181,6 +190,18 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
specify "" to indicate that the command may only be run specify "" to indicate that the command may only be run
wwiitthhoouutt command line arguments. A directory is a fully wwiitthhoouutt command line arguments. A directory is a fully
qualified pathname ending in a '/'. When you specify a qualified pathname ending in a '/'. When you specify a
1.6.8 August 5, 2004 3
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
directory in a Cmnd_List, the user will be able to run any directory in a Cmnd_List, the user will be able to run any
file within that directory (but not in any subdirectories file within that directory (but not in any subdirectories
therein). therein).
@@ -189,23 +210,11 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
arguments in the Cmnd must match exactly those given by arguments in the Cmnd must match exactly those given by
the user on the command line (or match the wildcards if the user on the command line (or match the wildcards if
there are any). Note that the following characters must there are any). Note that the following characters must
be escaped with a '\' if they are used in command be escaped with a '\' if they are used in command argu<67>
ments: ',', ':', '=', '\'. The special command "sudoedit"
is used to permit a user to run ssuuddoo with the --ee flag (or
as ssuuddooeeddiitt). It may take command line arguments just as
1.6.8 June 8, 2004 3 a normal command does.
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
arguments: ',', ':', '=', '\'. The special command
"sudoedit" is used to permit a user to run ssuuddoo with the
--ee flag (or as ssuuddooeeddiitt). It may take command line argu<67>
ments just as a normal command does.
DDeeffaauullttss DDeeffaauullttss
@@ -213,9 +222,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
default values at runtime via one or more Default_Entry default values at runtime via one or more Default_Entry
lines. These may affect all users on any host, all users lines. These may affect all users on any host, all users
on a specific host, a specific user, or commands being run on a specific host, a specific user, or commands being run
as a specific user. When multiple entries match, they are as a specific user.
applied in order. Where there are conflicting values, the
last value on a matching line takes effect.
Default_Type ::= 'Defaults' | Default_Type ::= 'Defaults' |
'Defaults' '@' Host | 'Defaults' '@' Host |
@@ -245,29 +252,24 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
respectively. It is not an error to use the -= operator respectively. It is not an error to use the -= operator
to remove an element that does not exist in a list. to remove an element that does not exist in a list.
Note that since the _s_u_d_o_e_r_s file is parsed in order the
best place to put the Defaults section is after the
Host_Alias, User_Alias, and Cmnd_Alias specifications but
before any Runas_Alias or user specifications.
FFllaaggss: FFllaaggss:
long_otp_prompt long_otp_prompt
When validating with a One Time Password When validating with a One Time Password
1.6.8 August 5, 2004 4
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
scheme (SS//KKeeyy or OOPPIIEE), a two-line prompt is scheme (SS//KKeeyy or OOPPIIEE), a two-line prompt is
used to make it easier to cut and paste the used to make it easier to cut and paste the
1.6.8 June 8, 2004 4
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
challenge to a local window. It's not as challenge to a local window. It's not as
pretty as the default but some people find it pretty as the default but some people find it
more convenient. This flag is _o_f_f by default. more convenient. This flag is _o_f_f by default.
@@ -320,20 +322,21 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
If set, users must authenticate themselves via If set, users must authenticate themselves via
a password (or other means of authentication) a password (or other means of authentication)
before they may run commands. This default before they may run commands. This default
1.6.8 August 5, 2004 5
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
may be overridden via the PASSWD and NOPASSWD may be overridden via the PASSWD and NOPASSWD
tags. This flag is _o_n by default. tags. This flag is _o_n by default.
1.6.8 June 8, 2004 5
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
root_sudo If set, root is allowed to run ssuuddoo too. Dis<69> root_sudo If set, root is allowed to run ssuuddoo too. Dis<69>
abling this prevents users from "chaining" abling this prevents users from "chaining"
ssuuddoo commands to get a root shell by doing ssuuddoo commands to get a root shell by doing
@@ -385,21 +388,20 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
tage is that if the executable is simply not tage is that if the executable is simply not
in the user's PATH, ssuuddoo will tell the user in the user's PATH, ssuuddoo will tell the user
that they are not allowed to run it, which can that they are not allowed to run it, which can
1.6.8 August 5, 2004 6
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
be confusing. This flag is _o_f_f by default. be confusing. This flag is _o_f_f by default.
1.6.8 June 8, 2004 6
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
preserve_groups preserve_groups
By default ssuuddoo will initialize the group vec<65> By default ssuuddoo will initialize the group vec<65>
tor to the list of groups the target user is tor to the list of groups the target user is
@@ -452,20 +454,20 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
specified in editor. This flag is off by specified in editor. This flag is off by
default. default.
1.6.8 August 5, 2004 7
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
rootpw If set, ssuuddoo will prompt for the root password rootpw If set, ssuuddoo will prompt for the root password
instead of the password of the invoking user. instead of the password of the invoking user.
1.6.8 June 8, 2004 7
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
This flag is _o_f_f by default. This flag is _o_f_f by default.
runaspw If set, ssuuddoo will prompt for the password of runaspw If set, ssuuddoo will prompt for the password of
@@ -517,21 +519,22 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
variables may be preserved with the _e_n_v___k_e_e_p variables may be preserved with the _e_n_v___k_e_e_p
option. option.
1.6.8 August 5, 2004 8
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
use_loginclass use_loginclass
If set, ssuuddoo will apply the defaults specified If set, ssuuddoo will apply the defaults specified
for the target user's login class if one for the target user's login class if one
1.6.8 June 8, 2004 8
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
exists. Only available if ssuuddoo is configured exists. Only available if ssuuddoo is configured
with the --with-logincap option. This flag is with the --with-logincap option. This flag is
_o_f_f by default. _o_f_f by default.
@@ -543,6 +546,21 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
VENTING SHELL ESCAPES" section at the end of VENTING SHELL ESCAPES" section at the end of
this manual. This flag is _o_f_f by default. this manual. This flag is _o_f_f by default.
ignore_local_sudoers
If set via LDAP, parsing of @sysconfdir@/sudo<64>
ers will be skipped. This is intended for an
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
@sysconfdir@/sudoers. When this option is
present, @sysconfdir@/sudoers does not even
need to exist. Since this options tells sudo
how to behave when no specific LDAP entries
have been matched, this sudoOption is only
meaningful for the cn=defaults section. This
flag is _o_f_f by default.
IInntteeggeerrss: IInntteeggeerrss:
passwd_tries passwd_tries
@@ -569,6 +587,17 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
their own timestamps via sudo -v and sudo -k their own timestamps via sudo -v and sudo -k
respectively. respectively.
1.6.8 August 5, 2004 9
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
passwd_timeout passwd_timeout
Number of minutes before the ssuuddoo password Number of minutes before the ssuuddoo password
prompt times out. The default is 5, set this prompt times out. The default is 5, set this
@@ -585,19 +614,6 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
the machine. Default is *** SECURITY informa<6D> the machine. Default is *** SECURITY informa<6D>
tion for %h ***. tion for %h ***.
1.6.8 June 8, 2004 9
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
badpass_message badpass_message
Message that is displayed if a user enters an Message that is displayed if a user enters an
incorrect password. The default is Sorry, try incorrect password. The default is Sorry, try
@@ -637,6 +653,17 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
The default value is Password:. The default value is Password:.
1.6.8 August 5, 2004 10
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
runas_default runas_default
The default user to run commands as if the --uu The default user to run commands as if the --uu
flag is not specified on the command line. flag is not specified on the command line.
@@ -652,18 +679,6 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
Syslog priority to use when user authenticates Syslog priority to use when user authenticates
unsuccessfully. Defaults to alert. unsuccessfully. Defaults to alert.
1.6.8 June 8, 2004 10
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
editor A colon (':') separated list of editors editor A colon (':') separated list of editors
allowed to be used with vviissuuddoo. vviissuuddoo will allowed to be used with vviissuuddoo. vviissuuddoo will
choose the editor that matches the user's USER choose the editor that matches the user's USER
@@ -704,6 +719,17 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
file). Setting a path turns on logging to a file). Setting a path turns on logging to a
file; negating this option turns it off. file; negating this option turns it off.
1.6.8 August 5, 2004 11
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
syslog Syslog facility if syslog is being used for syslog Syslog facility if syslog is being used for
logging (negate to disable syslog logging). logging (negate to disable syslog logging).
Defaults to local2. Defaults to local2.
@@ -717,20 +743,8 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
mailto Address to send warning and error mail to. mailto Address to send warning and error mail to.
The address should be enclosed in double The address should be enclosed in double
quotes (") to protect against sudo quotes (") to protect against sudo interpret<65>
ing the @ sign. Defaults to root.
1.6.8 June 8, 2004 11
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
interpreting the @ sign. Defaults to root.
exempt_group exempt_group
Users in this group are exempt from password Users in this group are exempt from password
@@ -771,6 +785,17 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
the NOPASSWD flag set to avoid enter<65> the NOPASSWD flag set to avoid enter<65>
ing a password. ing a password.
1.6.8 August 5, 2004 12
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
never The user need never enter a password never The user need never enter a password
to use the --ll flag. to use the --ll flag.
@@ -784,18 +809,6 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
env_check Environment variables to be removed from the env_check Environment variables to be removed from the
user's environment if the variable's value user's environment if the variable's value
contains % or / characters. This can be used contains % or / characters. This can be used
1.6.8 June 8, 2004 12
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
to guard against printf-style format vulnera<72> to guard against printf-style format vulnera<72>
bilities in poorly-written programs. The bilities in poorly-written programs. The
argument may be a double-quoted, space-sepa<70> argument may be a double-quoted, space-sepa<70>
@@ -837,6 +850,18 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
Parameter): aauutthhpprriivv (if your OS supports it), aauutthh, ddaaee<><08> Parameter): aauutthhpprriivv (if your OS supports it), aauutthh, ddaaee<><08>
mmoonn, uusseerr, llooccaall00, llooccaall11, llooccaall22, llooccaall33, llooccaall44, llooccaall55, mmoonn, uusseerr, llooccaall00, llooccaall11, llooccaall22, llooccaall33, llooccaall44, llooccaall55,
llooccaall66, and llooccaall77. The following syslog priorities are llooccaall66, and llooccaall77. The following syslog priorities are
1.6.8 August 5, 2004 13
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
supported: aalleerrtt, ccrriitt, ddeebbuugg, eemmeerrgg, eerrrr, iinnffoo, nnoottiiccee, supported: aalleerrtt, ccrriitt, ddeebbuugg, eemmeerrgg, eerrrr, iinnffoo, nnoottiiccee,
and wwaarrnniinngg. and wwaarrnniinngg.
@@ -850,18 +875,6 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
Cmnd_Spec ::= Runas_Spec? Tag_Spec* Cmnd Cmnd_Spec ::= Runas_Spec? Tag_Spec* Cmnd
1.6.8 June 8, 2004 13
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
Runas_Spec ::= '(' Runas_List ')' Runas_Spec ::= '(' Runas_List ')'
Tag_Spec ::= ('NOPASSWD:' | 'PASSWD:' | 'NOEXEC:' | 'EXEC:') Tag_Spec ::= ('NOPASSWD:' | 'PASSWD:' | 'NOEXEC:' | 'EXEC:')
@@ -903,6 +916,18 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
There are four possible tag values, NOPASSWD, PASSWD, There are four possible tag values, NOPASSWD, PASSWD,
NOEXEC, EXEC. Once a tag is set on a Cmnd, subsequent NOEXEC, EXEC. Once a tag is set on a Cmnd, subsequent
Cmnds in the Cmnd_Spec_List, inherit the tag unless it is Cmnds in the Cmnd_Spec_List, inherit the tag unless it is
1.6.8 August 5, 2004 14
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
overridden by the opposite tag (ie: PASSWD overrides overridden by the opposite tag (ie: PASSWD overrides
NOPASSWD and EXEC overrides NOEXEC). NOPASSWD and EXEC overrides NOEXEC).
@@ -917,17 +942,6 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
ray rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm ray rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm
1.6.8 June 8, 2004 14
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
would allow the user rraayy to run _/_b_i_n_/_k_i_l_l, _/_b_i_n_/_l_s, and would allow the user rraayy to run _/_b_i_n_/_k_i_l_l, _/_b_i_n_/_l_s, and
_/_u_s_r_/_b_i_n_/_l_p_r_m as root on the machine rushmore as rroooott _/_u_s_r_/_b_i_n_/_l_p_r_m as root on the machine rushmore as rroooott
without authenticating himself. If we only want rraayy to be without authenticating himself. If we only want rraayy to be
@@ -968,6 +982,18 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
ssuuddoo allows shell-style _w_i_l_d_c_a_r_d_s (aka meta or glob char<61> ssuuddoo allows shell-style _w_i_l_d_c_a_r_d_s (aka meta or glob char<61>
acters) to be used in pathnames as well as command line acters) to be used in pathnames as well as command line
arguments in the _s_u_d_o_e_r_s file. Wildcard matching is done arguments in the _s_u_d_o_e_r_s file. Wildcard matching is done
1.6.8 August 5, 2004 15
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
via the PPOOSSIIXX _f_n_m_a_t_c_h(3) routine. Note that these are _n_o_t via the PPOOSSIIXX _f_n_m_a_t_c_h(3) routine. Note that these are _n_o_t
regular expressions. regular expressions.
@@ -983,17 +1009,6 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
used to escape special characters such as: "*", used to escape special characters such as: "*",
"?", "[", and "}". "?", "[", and "}".
1.6.8 June 8, 2004 15
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
Note that a forward slash ('/') will nnoott be matched by Note that a forward slash ('/') will nnoott be matched by
wildcards used in the pathname. When matching the command wildcards used in the pathname. When matching the command
line arguments, however, a slash ddooeess get matched by wild<6C> line arguments, however, a slash ddooeess get matched by wild<6C>
@@ -1003,13 +1018,50 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
match _/_u_s_r_/_b_i_n_/_w_h_o but not _/_u_s_r_/_b_i_n_/_X_1_1_/_x_t_e_r_m. match _/_u_s_r_/_b_i_n_/_w_h_o but not _/_u_s_r_/_b_i_n_/_X_1_1_/_x_t_e_r_m.
WARNING: a pathname with wildcards will nnoott match a user
command that consists of a relative path. In other words,
given the following _s_u_d_o_e_r_s entry:
billy workstation = /usr/bin/*
user billy will be able to run any command in /usr/bin as
root, such as _/_u_s_r_/_b_i_n_/_w. The following two command will
be allowed (the first assumes that _/_u_s_r_/_b_i_n is in the
user's path):
$ sudo w
$ sudo /usr/bin/w
However, this will not:
$ cd /usr/bin
$ sudo ./w
For this reason you should only ggrraanntt access to commands
using wildcards and never rreessttrriicctt access using them.
This limitation will be removed in a future version of
ssuuddoo.
EExxcceeppttiioonnss ttoo wwiillddccaarrdd rruulleess EExxcceeppttiioonnss ttoo wwiillddccaarrdd rruulleess
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 "" If the empty string "" is the only command line
argument in the _s_u_d_o_e_r_s entry it means that com<6F> argument in the _s_u_d_o_e_r_s entry it means that
mand is not allowed to be run with aannyy arguments.
1.6.8 August 5, 2004 16
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
command is not allowed to be run with aannyy argu<67>
ments.
OOtthheerr ssppeecciiaall cchhaarraacctteerrss aanndd rreesseerrvveedd wwoorrddss OOtthheerr ssppeecciiaall cchhaarraacctteerrss aanndd rreesseerrvveedd wwoorrddss
@@ -1047,19 +1099,15 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
hostname): '@', '!', '=', ':', ',', '(', ')', '\'. hostname): '@', '!', '=', ':', ',', '(', ')', '\'.
EEXXAAMMPPLLEESS EEXXAAMMPPLLEESS
Since the _s_u_d_o_e_r_s file is parsed in a single pass, order
is important. In general, you should structure _s_u_d_o_e_r_s
such that the Host_Alias, User_Alias, and Cmnd_Alias spec<65>
ifications come first, followed by any Default_Entry
lines, and finally the Runas_Alias and user specifica<63>
tions. The basic rule of thumb is you cannot reference an
Alias that has not already been defined.
Below are example _s_u_d_o_e_r_s entries. Admittedly, some of Below are example _s_u_d_o_e_r_s entries. Admittedly, some of
1.6.8 June 8, 2004 16
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
these are a bit contrived. First, we define our _a_l_i_a_s_e_s: these are a bit contrived. First, we define our _a_l_i_a_s_e_s:
# User alias specification # User alias specification
@@ -1067,6 +1115,17 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
User_Alias PARTTIMERS = bostley, jwfox, crawl User_Alias PARTTIMERS = bostley, jwfox, crawl
User_Alias WEBMASTERS = will, wendy, wim User_Alias WEBMASTERS = will, wendy, wim
1.6.8 August 5, 2004 17
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
# Runas alias specification # Runas alias specification
Runas_Alias OP = root, operator Runas_Alias OP = root, operator
Runas_Alias DB = oracle, sybase Runas_Alias DB = oracle, sybase
@@ -1098,7 +1157,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
We want ssuuddoo to log via _s_y_s_l_o_g(3) using the _a_u_t_h facility We want ssuuddoo to log via _s_y_s_l_o_g(3) using the _a_u_t_h facility
in all cases. We don't want to subject the full time in all cases. We don't want to subject the full time
staff to the ssuuddoo lecture, user mmiilllleerrtt need not give a staff to the ssuuddoo lecture, user mmiilllleerrtt need not give a
password, and we don't want to set the LOGNAME or USER password, and we don't want to reset the LOGNAME or USER
environment variables when running commands as root. environment variables when running commands as root.
Additionally, on the machines in the _S_E_R_V_E_R_S Host_Alias, Additionally, on the machines in the _S_E_R_V_E_R_S Host_Alias,
we keep an additional local log file and make sure we log we keep an additional local log file and make sure we log
@@ -1115,23 +1174,24 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
The _U_s_e_r _s_p_e_c_i_f_i_c_a_t_i_o_n is the part that actually deter<65> The _U_s_e_r _s_p_e_c_i_f_i_c_a_t_i_o_n is the part that actually deter<65>
mines who may run what. mines who may run what.
1.6.8 June 8, 2004 17
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
root ALL = (ALL) ALL root ALL = (ALL) ALL
%wheel ALL = (ALL) ALL %wheel ALL = (ALL) ALL
We let rroooott and any user in group wwhheeeell run any command on We let rroooott and any user in group wwhheeeell run any command on
any host as any user. any host as any user.
1.6.8 August 5, 2004 18
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
FULLTIMERS ALL = NOPASSWD: ALL FULLTIMERS ALL = NOPASSWD: ALL
Full time sysadmins (mmiilllleerrtt, mmiikkeeff, and ddoowwddyy) may run Full time sysadmins (mmiilllleerrtt, mmiikkeeff, and ddoowwddyy) may run
@@ -1180,24 +1240,24 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
The user bboobb may run anything on the _S_P_A_R_C and _S_G_I The user bboobb may run anything on the _S_P_A_R_C and _S_G_I
machines as any user listed in the _O_P Runas_Alias (rroooott machines as any user listed in the _O_P Runas_Alias (rroooott
1.6.8 June 8, 2004 18
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
and ooppeerraattoorr). and ooppeerraattoorr).
jim +biglab = ALL jim +biglab = ALL
The user jjiimm may run any command on machines in the _b_i_g_l_a_b The user jjiimm may run any command on machines in the _b_i_g_l_a_b
netgroup. SSuuddoo knows that "biglab" is a netgroup due to netgroup. SSuuddoo knows that "biglab" is a netgroup due to
1.6.8 August 5, 2004 19
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
the '+' prefix. the '+' prefix.
+secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser +secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser
@@ -1247,23 +1307,23 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
ALL CDROM = NOPASSWD: /sbin/umount /CDROM,\ ALL CDROM = NOPASSWD: /sbin/umount /CDROM,\
/sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM /sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM
1.6.8 June 8, 2004 19
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
Any user may mount or unmount a CD-ROM on the machines in Any user may mount or unmount a CD-ROM on the machines in
the CDROM Host_Alias (orion, perseus, hercules) without the CDROM Host_Alias (orion, perseus, hercules) without
entering a password. This is a bit tedious for users to entering a password. This is a bit tedious for users to
type, so it is a prime candidate for encapsulating in a type, so it is a prime candidate for encapsulating in a
shell script. shell script.
1.6.8 August 5, 2004 20
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
SSEECCUURRIITTYY NNOOTTEESS SSEECCUURRIITTYY NNOOTTEESS
It is generally not effective to "subtract" commands from It is generally not effective to "subtract" commands from
ALL using the '!' operator. A user can trivially circum<75> ALL using the '!' operator. A user can trivially circum<75>
@@ -1312,25 +1372,25 @@ PPRREEVVEENNTTIINNGG SSHHEELLLL EESSCCAAPPEESS
return an error. Unfortunately, there is no foolproof way return an error. Unfortunately, there is no foolproof way
to know whether or not _n_o_e_x_e_c will work at compile-time. to know whether or not _n_o_e_x_e_c will work at compile-time.
_N_o_e_x_e_c should work on SunOS, Solaris, *BSD, Linux, IRIX, _N_o_e_x_e_c should work on SunOS, Solaris, *BSD, Linux, IRIX,
1.6.8 June 8, 2004 20
SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4)
Tru64 UNIX, MacOS X, and HP-UX 11.x. It is known nnoott to Tru64 UNIX, MacOS X, and HP-UX 11.x. It is known nnoott to
work on AIX and UnixWare. _N_o_e_x_e_c is expected to work on work on AIX and UnixWare. _N_o_e_x_e_c is expected to work on
most operating systems that support the LD_PRELOAD envi<76> most operating systems that support the LD_PRELOAD envi<76>
ronment variable. Check your operating system's manual ronment variable. Check your operating system's manual
pages for the dynamic linker (usually ld.so, ld.so.1, pages for the dynamic linker (usually ld.so, ld.so.1,
dyld, dld.sl, rld, or loader) to see if LD_PRELOAD is sup<75> dyld, dld.sl, rld, or loader) to see if LD_PRELOAD is
ported.
1.6.8 August 5, 2004 21
SUDOERS(5) MAINTENANCE COMMANDS SUDOERS(5)
supported.
To enable _n_o_e_x_e_c for a command, use the NOEXEC tag as doc<6F> To enable _n_o_e_x_e_c for a command, use the NOEXEC tag as doc<6F>
umented in the User Specification section above. Here is umented in the User Specification section above. Here is
@@ -1381,6 +1441,12 @@ SSEEEE AALLSSOO
1.6.8 June 8, 2004 21
1.6.8 August 5, 2004 22

View File

@@ -149,17 +149,22 @@
.\" ======================================================================== .\" ========================================================================
.\" .\"
.IX Title "SUDOERS @mansectform@" .IX Title "SUDOERS @mansectform@"
.TH SUDOERS @mansectform@ "July 30, 2004" "1.6.8" "MAINTENANCE COMMANDS" .TH SUDOERS @mansectform@ "August 5, 2004" "1.6.8" "MAINTENANCE COMMANDS"
.SH "NAME" .SH "NAME"
sudoers \- list of which users may execute what sudoers \- list of which users may execute what
.SH "DESCRIPTION" .SH "DESCRIPTION"
.IX Header "DESCRIPTION" .IX Header "DESCRIPTION"
The \fIsudoers\fR file is composed of two types of entries: The \fIsudoers\fR file is composed of two types of entries: aliases
aliases (basically variables) and user specifications (basically variables) and user specifications (which specify who
(which specify who may run what). The grammar of \fIsudoers\fR may run what).
will be described below in Extended Backus-Naur Form (\s-1EBNF\s0). .PP
Don't despair if you don't know what \s-1EBNF\s0 is; it is fairly When multiple entries match for a user, they are applied in order.
simple, and the definitions below are annotated. Where there are conflicting values, the last match is used (which
is not necessarily the most specific match).
.PP
The \fIsudoers\fR grammar will be described below in Extended Backus-Naur
Form (\s-1EBNF\s0). Don't despair if you don't know what \s-1EBNF\s0 is; it is
fairly simple, and the definitions below are annotated.
.Sh "Quick guide to \s-1EBNF\s0" .Sh "Quick guide to \s-1EBNF\s0"
.IX Subsection "Quick guide to EBNF" .IX Subsection "Quick guide to EBNF"
\&\s-1EBNF\s0 is a concise and exact way of describing the grammar of a language. \&\s-1EBNF\s0 is a concise and exact way of describing the grammar of a language.
@@ -349,9 +354,7 @@ a normal command does.
Certain configuration options may be changed from their default Certain configuration options may be changed from their default
values at runtime via one or more \f(CW\*(C`Default_Entry\*(C'\fR lines. These values at runtime via one or more \f(CW\*(C`Default_Entry\*(C'\fR lines. These
may affect all users on any host, all users on a specific host, a may affect all users on any host, all users on a specific host, a
specific user, or commands being run as a specific user. When specific user, or commands being run as a specific user.
multiple entries match, they are applied in order. Where there are
conflicting values, the last value on a matching line takes effect.
.PP .PP
.Vb 4 .Vb 4
\& Default_Type ::= 'Defaults' | \& Default_Type ::= 'Defaults' |
@@ -388,11 +391,6 @@ These operators are used to add to and delete from a list respectively.
It is not an error to use the \f(CW\*(C`\-=\*(C'\fR operator to remove an element It is not an error to use the \f(CW\*(C`\-=\*(C'\fR operator to remove an element
that does not exist in a list. that does not exist in a list.
.PP .PP
Note that since the \fIsudoers\fR file is parsed in order the best place
to put the Defaults section is after the \f(CW\*(C`Host_Alias\*(C'\fR, \f(CW\*(C`User_Alias\*(C'\fR,
and \f(CW\*(C`Cmnd_Alias\*(C'\fR specifications but before any \f(CW\*(C`Runas_Alias\*(C'\fR or user
specifications.
.PP
\&\fBFlags\fR: \&\fBFlags\fR:
.IP "long_otp_prompt" 12 .IP "long_otp_prompt" 12
.IX Item "long_otp_prompt" .IX Item "long_otp_prompt"
@@ -1000,6 +998,34 @@ wildcards. This is to make a path like:
.Ve .Ve
.PP .PP
match \fI/usr/bin/who\fR but not \fI/usr/bin/X11/xterm\fR. match \fI/usr/bin/who\fR but not \fI/usr/bin/X11/xterm\fR.
.PP
\&\s-1WARNING:\s0 a pathname with wildcards will \fBnot\fR match a user command
that consists of a relative path. In other words, given the
following \fIsudoers\fR entry:
.PP
.Vb 1
\& billy workstation = /usr/bin/*
.Ve
.PP
user billy will be able to run any command in /usr/bin as root, such
as \fI/usr/bin/w\fR. The following two command will be allowed (the first
assumes that \fI/usr/bin\fR is in the user's path):
.PP
.Vb 2
\& $ sudo w
\& $ sudo /usr/bin/w
.Ve
.PP
However, this will not:
.PP
.Vb 2
\& $ cd /usr/bin
\& $ sudo ./w
.Ve
.PP
For this reason you should only \fBgrant\fR access to commands using
wildcards and never \fBrestrict\fR access using them. This limitation
will be removed in a future version of \fBsudo\fR.
.Sh "Exceptions to wildcard rules" .Sh "Exceptions to wildcard rules"
.IX Subsection "Exceptions to wildcard rules" .IX Subsection "Exceptions to wildcard rules"
The following exceptions apply to the above rules: The following exceptions apply to the above rules:
@@ -1043,6 +1069,13 @@ used as part of a word (e.g. a username or hostname):
\&'@', '!', '=', ':', ',', '(', ')', '\e'. \&'@', '!', '=', ':', ',', '(', ')', '\e'.
.SH "EXAMPLES" .SH "EXAMPLES"
.IX Header "EXAMPLES" .IX Header "EXAMPLES"
Since the \fIsudoers\fR file is parsed in a single pass, order is
important. In general, you should structure \fIsudoers\fR such that
the \f(CW\*(C`Host_Alias\*(C'\fR, \f(CW\*(C`User_Alias\*(C'\fR, and \f(CW\*(C`Cmnd_Alias\*(C'\fR specifications
come first, followed by any \f(CW\*(C`Default_Entry\*(C'\fR lines, and finally the
\&\f(CW\*(C`Runas_Alias\*(C'\fR and user specifications. The basic rule of thumb
is you cannot reference an Alias that has not already been defined.
.PP
Below are example \fIsudoers\fR entries. Admittedly, some of Below are example \fIsudoers\fR entries. Admittedly, some of
these are a bit contrived. First, we define our \fIaliases\fR: these are a bit contrived. First, we define our \fIaliases\fR:
.PP .PP
@@ -1090,7 +1123,7 @@ Here we override some of the compiled in default values. We want
\&\fBsudo\fR to log via \fIsyslog\fR\|(3) using the \fIauth\fR facility in all \&\fBsudo\fR to log via \fIsyslog\fR\|(3) using the \fIauth\fR facility in all
cases. We don't want to subject the full time staff to the \fBsudo\fR cases. We don't want to subject the full time staff to the \fBsudo\fR
lecture, user \fBmillert\fR need not give a password, and we don't lecture, user \fBmillert\fR need not give a password, and we don't
want to set the \f(CW\*(C`LOGNAME\*(C'\fR or \f(CW\*(C`USER\*(C'\fR environment variables when want to reset the \f(CW\*(C`LOGNAME\*(C'\fR or \f(CW\*(C`USER\*(C'\fR environment variables when
running commands as root. Additionally, on the machines in the running commands as root. Additionally, on the machines in the
\&\fI\s-1SERVERS\s0\fR \f(CW\*(C`Host_Alias\*(C'\fR, we keep an additional local log file and \&\fI\s-1SERVERS\s0\fR \f(CW\*(C`Host_Alias\*(C'\fR, we keep an additional local log file and
make sure we log the year in each log line since the log entries make sure we log the year in each log line since the log entries