man pages get built in the build- directories
[debian/sudo] / sudo.cat
1
2
3
4 SUDO(1m)               MAINTENANCE COMMANDS              SUDO(1m)
5
6
7 N\bNA\bAM\bME\bE
8        sudo, sudoedit - execute a command as another user
9
10 S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
11        s\bsu\bud\bdo\bo [-\b-n\bn] -\b-h\bh | -\b-K\bK | -\b-k\bk | -\b-L\bL | -\b-V\bV | -\b-v\bv
12
13        s\bsu\bud\bdo\bo -\b-l\bl[\b[l\bl]\b] [-\b-A\bAn\bnS\bS] [-\b-g\bg _\bg_\br_\bo_\bu_\bp_\bn_\ba_\bm_\be|_\b#_\bg_\bi_\bd] [-\b-U\bU _\bu_\bs_\be_\br_\bn_\ba_\bm_\be] [-\b-u\bu _\bu_\bs_\be_\br_\bn_\ba_\bm_\be|_\b#_\bu_\bi_\bd]
14        [_\bc_\bo_\bm_\bm_\ba_\bn_\bd]
15
16        s\bsu\bud\bdo\bo [-\b-A\bAb\bbE\bEH\bHn\bnP\bPS\bS] [-\b-a\ba _\ba_\bu_\bt_\bh_\b__\bt_\by_\bp_\be] [-\b-C\bC _\bf_\bd] [-\b-c\bc _\bc_\bl_\ba_\bs_\bs|_\b-] [-\b-g\bg _\bg_\br_\bo_\bu_\bp_\bn_\ba_\bm_\be|_\b#_\bg_\bi_\bd]
17        [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-u\bu _\bu_\bs_\be_\br_\bn_\ba_\bm_\be|_\b#_\bu_\bi_\bd] [V\bVA\bAR\bR=_\bv_\ba_\bl_\bu_\be] [-\b-i\bi | -\b-s\bs] [_\bc_\bo_\bm_\bm_\ba_\bn_\bd]
18
19        s\bsu\bud\bdo\boe\bed\bdi\bit\bt [-\b-A\bAn\bnS\bS] [-\b-a\ba _\ba_\bu_\bt_\bh_\b__\bt_\by_\bp_\be] [-\b-C\bC _\bf_\bd] [-\b-c\bc _\bc_\bl_\ba_\bs_\bs|_\b-] [-\b-g\bg _\bg_\br_\bo_\bu_\bp_\bn_\ba_\bm_\be|_\b#_\bg_\bi_\bd]
20        [-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt] [-\b-u\bu _\bu_\bs_\be_\br_\bn_\ba_\bm_\be|_\b#_\bu_\bi_\bd] file ...
21
22 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
23        s\bsu\bud\bdo\bo allows a permitted user to execute a _\bc_\bo_\bm_\bm_\ba_\bn_\bd as the superuser or
24        another user, as specified in the _\bs_\bu_\bd_\bo_\be_\br_\bs file.  The real and effective
25        uid and gid are set to match those of the target user as specified in
26        the passwd file and the group vector is initialized based on the group
27        file (unless the -\b-P\bP option was specified).  If the invoking user is
28        root or if the target user is the same as the invoking user, no
29        password is required.  Otherwise, s\bsu\bud\bdo\bo requires that users authenticate
30        themselves with a password by default (NOTE: in the default
31        configuration this is the user's password, not the root password).
32        Once a user has been authenticated, a timestamp is updated and the user
33        may then use sudo without a password for a short period of time (5
34        minutes unless overridden in _\bs_\bu_\bd_\bo_\be_\br_\bs).
35
36        When invoked as s\bsu\bud\bdo\boe\bed\bdi\bit\bt, the -\b-e\be option (described below), is implied.
37
38        s\bsu\bud\bdo\bo determines who is an authorized user by consulting the file
39        _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs.  By running s\bsu\bud\bdo\bo with the -\b-v\bv option, a user can update
40        the time stamp without running a _\bc_\bo_\bm_\bm_\ba_\bn_\bd. The password prompt itself
41        will also time out if the user's password is not entered within 5
42        minutes (unless overridden via _\bs_\bu_\bd_\bo_\be_\br_\bs).
43
44        If a user who is not listed in the _\bs_\bu_\bd_\bo_\be_\br_\bs file tries to run a command
45        via s\bsu\bud\bdo\bo, mail is sent to the proper authorities, as defined at
46        configure time or in the _\bs_\bu_\bd_\bo_\be_\br_\bs file (defaults to root).  Note that
47        the mail will not be sent if an unauthorized user tries to run sudo
48        with the -\b-l\bl or -\b-v\bv option.  This allows users to determine for
49        themselves whether or not they are allowed to use s\bsu\bud\bdo\bo.
50
51        If s\bsu\bud\bdo\bo is run by root and the SUDO_USER environment variable is set,
52        s\bsu\bud\bdo\bo will use this value to determine who the actual user is.  This can
53        be used by a user to log commands through sudo even when a root shell
54        has been invoked.  It also allows the -\b-e\be option to remain useful even
55        when being run via a sudo-run script or program.  Note however, that
56        the sudoers lookup is still done for root, not the user specified by
57        SUDO_USER.
58
59        s\bsu\bud\bdo\bo can log both successful and unsuccessful attempts (as well as
60        errors) to _\bs_\by_\bs_\bl_\bo_\bg(3), a log file, or both.  By default s\bsu\bud\bdo\bo will log
61
62
63
64 1.7.0                   November 15, 2008                       1
65
66
67
68
69
70 SUDO(1m)               MAINTENANCE COMMANDS              SUDO(1m)
71
72
73        via _\bs_\by_\bs_\bl_\bo_\bg(3) but this is changeable at configure time or via the
74        _\bs_\bu_\bd_\bo_\be_\br_\bs file.
75
76 O\bOP\bPT\bTI\bIO\bON\bNS\bS
77        s\bsu\bud\bdo\bo accepts the following command line options:
78
79        -A          Normally, if s\bsu\bud\bdo\bo requires a password, it will read it from
80                    the current terminal.  If the -\b-A\bA (_\ba_\bs_\bk_\bp_\ba_\bs_\bs) option is
81                    specified, a helper program is executed to read the user's
82                    password and output the password to the standard output.
83                    If the SUDO_ASKPASS environment variable is set, it
84                    specifies the path to the helper program.  Otherwise, the
85                    value specified by the _\ba_\bs_\bk_\bp_\ba_\bs_\bs option in _\bs_\bu_\bd_\bo_\be_\br_\bs(4) is
86                    used.
87
88        -a _\bt_\by_\bp_\be     The -\b-a\ba (_\ba_\bu_\bt_\bh_\be_\bn_\bt_\bi_\bc_\ba_\bt_\bi_\bo_\bn _\bt_\by_\bp_\be) option causes s\bsu\bud\bdo\bo to use the
89                    specified authentication type when validating the user, as
90                    allowed by _\b/_\be_\bt_\bc_\b/_\bl_\bo_\bg_\bi_\bn_\b._\bc_\bo_\bn_\bf.  The system administrator may
91                    specify a list of sudo-specific authentication methods by
92                    adding an "auth-sudo" entry in _\b/_\be_\bt_\bc_\b/_\bl_\bo_\bg_\bi_\bn_\b._\bc_\bo_\bn_\bf.  This
93                    option is only available on systems that support BSD
94                    authentication.
95
96        -b          The -\b-b\bb (_\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd) option tells s\bsu\bud\bdo\bo to run the given
97                    command in the background.  Note that if you use the -\b-b\bb
98                    option you cannot use shell job control to manipulate the
99                    process.
100
101        -C _\bf_\bd       Normally, s\bsu\bud\bdo\bo will close all open file descriptors other
102                    than standard input, standard output and standard error.
103                    The -\b-C\bC (_\bc_\bl_\bo_\bs_\be _\bf_\br_\bo_\bm) option allows the user to specify a
104                    starting point above the standard error (file descriptor
105                    three).  Values less than three are not permitted.  This
106                    option is only available if the administrator has enabled
107                    the _\bc_\bl_\bo_\bs_\be_\bf_\br_\bo_\bm_\b__\bo_\bv_\be_\br_\br_\bi_\bd_\be option in _\bs_\bu_\bd_\bo_\be_\br_\bs(4).
108
109        -c _\bc_\bl_\ba_\bs_\bs    The -\b-c\bc (_\bc_\bl_\ba_\bs_\bs) option causes s\bsu\bud\bdo\bo to run the specified
110                    command with resources limited by the specified login
111                    class.  The _\bc_\bl_\ba_\bs_\bs argument can be either a class name as
112                    defined in _\b/_\be_\bt_\bc_\b/_\bl_\bo_\bg_\bi_\bn_\b._\bc_\bo_\bn_\bf, or a single '-' character.
113                    Specifying a _\bc_\bl_\ba_\bs_\bs of - indicates that the command should
114                    be run restricted by the default login capabilities for the
115                    user the command is run as.  If the _\bc_\bl_\ba_\bs_\bs argument
116                    specifies an existing user class, the command must be run
117                    as root, or the s\bsu\bud\bdo\bo command must be run from a shell that
118                    is already root.  This option is only available on systems
119                    with BSD login classes.
120
121        -E          The -\b-E\bE (_\bp_\br_\be_\bs_\be_\br_\bv_\be _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt) option will override the
122                    _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt option in _\bs_\bu_\bd_\bo_\be_\br_\bs(4)).  It is only available when
123                    either the matching command has the SETENV tag or the
124                    _\bs_\be_\bt_\be_\bn_\bv option is set in _\bs_\bu_\bd_\bo_\be_\br_\bs(4).
125
126        -e          The -\b-e\be (_\be_\bd_\bi_\bt) option indicates that, instead of running a
127
128
129
130 1.7.0                   November 15, 2008                       2
131
132
133
134
135
136 SUDO(1m)               MAINTENANCE COMMANDS              SUDO(1m)
137
138
139                    command, the user wishes to edit one or more files.  In
140                    lieu of a command, the string "sudoedit" is used when
141                    consulting the _\bs_\bu_\bd_\bo_\be_\br_\bs file.  If the user is authorized by
142                    _\bs_\bu_\bd_\bo_\be_\br_\bs the following steps are taken:
143
144                    1.  Temporary copies are made of the files to be edited
145                        with the owner set to the invoking user.
146
147                    2.  The editor specified by the SUDO_EDITOR, VISUAL or
148                        EDITOR environment variables is run to edit the
149                        temporary files.  If none of SUDO_EDITOR, VISUAL or
150                        EDITOR are set, the first program listed in the _\be_\bd_\bi_\bt_\bo_\br
151                        _\bs_\bu_\bd_\bo_\be_\br_\bs variable is used.
152
153                    3.  If they have been modified, the temporary files are
154                        copied back to their original location and the
155                        temporary versions are removed.
156
157                    If the specified file does not exist, it will be created.
158                    Note that unlike most commands run by s\bsu\bud\bdo\bo, the editor is
159                    run with the invoking user's environment unmodified.  If,
160                    for some reason, s\bsu\bud\bdo\bo is unable to update a file with its
161                    edited version, the user will receive a warning and the
162                    edited copy will remain in a temporary file.
163
164        -g _\bg_\br_\bo_\bu_\bp    Normally, s\bsu\bud\bdo\bo sets the primary group to the one specified
165                    by the passwd database for the user the command is being
166                    run as (by default, root).  The -\b-g\bg (_\bg_\br_\bo_\bu_\bp) option causes
167                    s\bsu\bud\bdo\bo to run the specified command with the primary group
168                    set to _\bg_\br_\bo_\bu_\bp.  To specify a _\bg_\bi_\bd instead of a _\bg_\br_\bo_\bu_\bp _\bn_\ba_\bm_\be,
169                    use _\b#_\bg_\bi_\bd.  When running commands as a _\bg_\bi_\bd, many shells
170                    require that the '#' be escaped with a backslash ('\').  If
171                    no -\b-u\bu option is specified, the command will be run as the
172                    invoking user (not root).  In either case, the primary
173                    group will be set to _\bg_\br_\bo_\bu_\bp.
174
175        -H          The -\b-H\bH (_\bH_\bO_\bM_\bE) option sets the HOME environment variable to
176                    the homedir of the target user (root by default) as
177                    specified in _\bp_\ba_\bs_\bs_\bw_\bd(4).  By default, s\bsu\bud\bdo\bo does not modify
178                    HOME (see _\bs_\be_\bt_\b__\bh_\bo_\bm_\be and _\ba_\bl_\bw_\ba_\by_\bs_\b__\bs_\be_\bt_\b__\bh_\bo_\bm_\be in _\bs_\bu_\bd_\bo_\be_\br_\bs(4)).
179
180        -h          The -\b-h\bh (_\bh_\be_\bl_\bp) option causes s\bsu\bud\bdo\bo to print a usage message
181                    and exit.
182
183        -i [command]
184                    The -\b-i\bi (_\bs_\bi_\bm_\bu_\bl_\ba_\bt_\be _\bi_\bn_\bi_\bt_\bi_\ba_\bl _\bl_\bo_\bg_\bi_\bn) option runs the shell
185                    specified in the _\bp_\ba_\bs_\bs_\bw_\bd(4) entry of the target user as a
186                    login shell.  This means that login-specific resource files
187                    such as .profile or .login will be read by the shell.  If a
188                    command is specified, it is passed to the shell for
189                    execution.  Otherwise, an interactive shell is executed.
190                    s\bsu\bud\bdo\bo attempts to change to that user's home directory
191                    before running the shell.  It also initializes the
192                    environment, leaving _\bD_\bI_\bS_\bP_\bL_\bA_\bY and _\bT_\bE_\bR_\bM unchanged, setting
193
194
195
196 1.7.0                   November 15, 2008                       3
197
198
199
200
201
202 SUDO(1m)               MAINTENANCE COMMANDS              SUDO(1m)
203
204
205                    _\bH_\bO_\bM_\bE, _\bS_\bH_\bE_\bL_\bL, _\bU_\bS_\bE_\bR, _\bL_\bO_\bG_\bN_\bA_\bM_\bE, and _\bP_\bA_\bT_\bH, as well as the
206                    contents of _\b/_\be_\bt_\bc_\b/_\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt on Linux and AIX systems.  All
207                    other environment variables are removed.
208
209        -K          The -\b-K\bK (sure _\bk_\bi_\bl_\bl) option is like -\b-k\bk except that it removes
210                    the user's timestamp entirely.  Like -\b-k\bk, this option does
211                    not require a password.
212
213        -k          The -\b-k\bk (_\bk_\bi_\bl_\bl) option to s\bsu\bud\bdo\bo invalidates the user's
214                    timestamp by setting the time on it to the Epoch.  The next
215                    time s\bsu\bud\bdo\bo is run a password will be required.  This option
216                    does not require a password and was added to allow a user
217                    to revoke s\bsu\bud\bdo\bo permissions from a .logout file.
218
219        -L          The -\b-L\bL (_\bl_\bi_\bs_\bt defaults) option will list out the parameters
220                    that may be set in a _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs line along with a short
221                    description for each.  This option is useful in conjunction
222                    with _\bg_\br_\be_\bp(1).
223
224        -l[l] [_\bc_\bo_\bm_\bm_\ba_\bn_\bd]
225                    If no _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, the -\b-l\bl (_\bl_\bi_\bs_\bt) option will list
226                    the allowed (and forbidden) commands for the invoking user
227                    (or the user specified by the -\b-U\bU option) on the current
228                    host.  If a _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified and is permitted by
229                    _\bs_\bu_\bd_\bo_\be_\br_\bs, the fully-qualified path to the command is
230                    displayed along with any command line arguments.  If
231                    _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified but not allowed, s\bsu\bud\bdo\bo will exit with a
232                    status value of 1.  If the -\b-l\bl option is specified with an l\bl
233                    argument (i.e. -\b-l\bll\bl), or if -\b-l\bl is specified multiple times,
234                    a longer list format is used.
235
236        -n          The -\b-n\bn (_\bn_\bo_\bn_\b-_\bi_\bn_\bt_\be_\br_\ba_\bc_\bt_\bi_\bv_\be) option prevents s\bsu\bud\bdo\bo from
237                    prompting the user for a password.  If a password is
238                    required for the command to run, s\bsu\bud\bdo\bo will display an error
239                    messages and exit.
240
241        -P          The -\b-P\bP (_\bp_\br_\be_\bs_\be_\br_\bv_\be _\bg_\br_\bo_\bu_\bp _\bv_\be_\bc_\bt_\bo_\br) option causes s\bsu\bud\bdo\bo to
242                    preserve the invoking user's group vector unaltered.  By
243                    default, s\bsu\bud\bdo\bo will initialize the group vector to the list
244                    of groups the target user is in.  The real and effective
245                    group IDs, however, are still set to match the target user.
246
247        -p _\bp_\br_\bo_\bm_\bp_\bt   The -\b-p\bp (_\bp_\br_\bo_\bm_\bp_\bt) option allows you to override the default
248                    password prompt and use a custom one.  The following
249                    percent (`%') escapes are supported:
250
251                    %H  expanded to the local hostname including the domain
252                        name (on if the machine's hostname is fully qualified
253                        or the _\bf_\bq_\bd_\bn _\bs_\bu_\bd_\bo_\be_\br_\bs option is set)
254
255                    %h  expanded to the local hostname without the domain name
256
257                    %p  expanded to the user whose password is being asked for
258                        (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
259
260
261
262 1.7.0                   November 15, 2008                       4
263
264
265
266
267
268 SUDO(1m)               MAINTENANCE COMMANDS              SUDO(1m)
269
270
271                        _\bs_\bu_\bd_\bo_\be_\br_\bs)
272
273                    %U  expanded to the login name of the user the command will
274                        be run as (defaults to root)
275
276                    %u  expanded to the invoking user's login name
277
278                    %%  two consecutive % characters are collapsed into a
279                        single % character
280
281                    The prompt specified by the -\b-p\bp option will override the
282                    system password prompt on systems that support PAM unless
283                    the _\bp_\ba_\bs_\bs_\bp_\br_\bo_\bm_\bp_\bt_\b__\bo_\bv_\be_\br_\br_\bi_\bd_\be flag is disabled in _\bs_\bu_\bd_\bo_\be_\br_\bs.
284
285        -S          The -\b-S\bS (_\bs_\bt_\bd_\bi_\bn) option causes s\bsu\bud\bdo\bo to read the password from
286                    the standard input instead of the terminal device.
287
288        -s [command]
289                    The -\b-s\bs (_\bs_\bh_\be_\bl_\bl) option runs the shell specified by the _\bS_\bH_\bE_\bL_\bL
290                    environment variable if it is set or the shell as specified
291                    in _\bp_\ba_\bs_\bs_\bw_\bd(4).  If a command is specified, it is passed to
292                    the shell for execution.  Otherwise, an interactive shell
293                    is executed.
294
295        -U _\bu_\bs_\be_\br     The -\b-U\bU (_\bo_\bt_\bh_\be_\br _\bu_\bs_\be_\br) option is used in conjunction with the
296                    -\b-l\bl option to specify the user whose privileges should be
297                    listed.  Only root or a user with s\bsu\bud\bdo\bo ALL on the current
298                    host may use this option.
299
300        -u _\bu_\bs_\be_\br     The -\b-u\bu (_\bu_\bs_\be_\br) option causes s\bsu\bud\bdo\bo to run the specified
301                    command as a user other than _\br_\bo_\bo_\bt.  To specify a _\bu_\bi_\bd
302                    instead of a _\bu_\bs_\be_\br _\bn_\ba_\bm_\be, use _\b#_\bu_\bi_\bd.  When running commands as
303                    a _\bu_\bi_\bd, many shells require that the '#' be escaped with a
304                    backslash ('\').  Note that if the _\bt_\ba_\br_\bg_\be_\bt_\bp_\bw Defaults option
305                    is set (see _\bs_\bu_\bd_\bo_\be_\br_\bs(4)) it is not possible to run commands
306                    with a uid not listed in the password database.
307
308        -V          The -\b-V\bV (_\bv_\be_\br_\bs_\bi_\bo_\bn) option causes s\bsu\bud\bdo\bo to print the version
309                    number and exit.  If the invoking user is already root the
310                    -\b-V\bV option will print out a list of the defaults s\bsu\bud\bdo\bo was
311                    compiled with as well as the machine's local network
312                    addresses.
313
314        -v          If given the -\b-v\bv (_\bv_\ba_\bl_\bi_\bd_\ba_\bt_\be) option, s\bsu\bud\bdo\bo will update the
315                    user's timestamp, prompting for the user's password if
316                    necessary.  This extends the s\bsu\bud\bdo\bo timeout for another 5
317                    minutes (or whatever the timeout is set to in _\bs_\bu_\bd_\bo_\be_\br_\bs) but
318                    does not run a command.
319
320        --          The -\b--\b- option indicates that s\bsu\bud\bdo\bo should stop processing
321                    command line arguments.  It is most useful in conjunction
322                    with the -\b-s\bs option.
323
324        Environment variables to be set for the command may also be passed on
325
326
327
328 1.7.0                   November 15, 2008                       5
329
330
331
332
333
334 SUDO(1m)               MAINTENANCE COMMANDS              SUDO(1m)
335
336
337        the command line in the form of V\bVA\bAR\bR=_\bv_\ba_\bl_\bu_\be, e.g.
338        L\bLD\bD_\b_L\bLI\bIB\bBR\bRA\bAR\bRY\bY_\b_P\bPA\bAT\bTH\bH=_\b/_\bu_\bs_\br_\b/_\bl_\bo_\bc_\ba_\bl_\b/_\bp_\bk_\bg_\b/_\bl_\bi_\bb.  Variables passed on the command
339        line are subject to the same restrictions as normal environment
340        variables with one important exception.  If the _\bs_\be_\bt_\be_\bn_\bv option is set in
341        _\bs_\bu_\bd_\bo_\be_\br_\bs, the command to be run has the SETENV tag set or the command
342        matched is ALL, the user may set variables that would overwise be
343        forbidden.  See _\bs_\bu_\bd_\bo_\be_\br_\bs(4) for more information.
344
345 R\bRE\bET\bTU\bUR\bRN\bN V\bVA\bAL\bLU\bUE\bES\bS
346        Upon successful execution of a program, the exit status from s\bsu\bud\bdo\bo will
347        simply be the exit status of the program that was executed.
348
349        Otherwise, s\bsu\bud\bdo\bo quits with an exit value of 1 if there is a
350        configuration/permission problem or if s\bsu\bud\bdo\bo cannot execute the given
351        command.  In the latter case the error string is printed to stderr.  If
352        s\bsu\bud\bdo\bo cannot _\bs_\bt_\ba_\bt(2) one or more entries in the user's PATH an error is
353        printed on stderr.  (If the directory does not exist or if it is not
354        really a directory, the entry is ignored and no error is printed.)
355        This should not happen under normal circumstances.  The most common
356        reason for _\bs_\bt_\ba_\bt(2) to return "permission denied" is if you are running
357        an automounter and one of the directories in your PATH is on a machine
358        that is currently unreachable.
359
360 S\bSE\bEC\bCU\bUR\bRI\bIT\bTY\bY N\bNO\bOT\bTE\bES\bS
361        s\bsu\bud\bdo\bo tries to be safe when executing external commands.
362
363        There are two distinct ways to deal with environment variables.  By
364        default, the _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt _\bs_\bu_\bd_\bo_\be_\br_\bs option is enabled.  This causes commands
365        to be executed with a minimal environment containing TERM, PATH, HOME,
366        SHELL, LOGNAME, USER and USERNAME in addition to variables from the
367        invoking process permitted by the _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk and _\be_\bn_\bv_\b__\bk_\be_\be_\bp _\bs_\bu_\bd_\bo_\be_\br_\bs
368        options.  There is effectively a whitelist for environment variables.
369
370        If, however, the _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt option is disabled in _\bs_\bu_\bd_\bo_\be_\br_\bs, any variables
371        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
372        inherited from the invoking process.  In this case, _\be_\bn_\bv_\b__\bc_\bh_\be_\bc_\bk and
373        _\be_\bn_\bv_\b__\bd_\be_\bl_\be_\bt_\be behave like a blacklist.  Since it is not possible to
374        blacklist all potentially dangerous environment variables, use of the
375        default _\be_\bn_\bv_\b__\br_\be_\bs_\be_\bt behavior is encouraged.
376
377        In all cases, environment variables with a value beginning with () are
378        removed as they could be interpreted as b\bba\bas\bsh\bh functions.  The list of
379        environment variables that s\bsu\bud\bdo\bo allows or denies is contained in the
380        output of sudo -V when run as root.
381
382        Note that the dynamic linker on most operating systems will remove
383        variables that can control dynamic linking from the environment of
384        setuid executables, including s\bsu\bud\bdo\bo.  Depending on the operating system
385        this may include _RLD*, DYLD_*, LD_*, LDR_*, LIBPATH, SHLIB_PATH, and
386        others.  These type of variables are removed from the environment
387        before s\bsu\bud\bdo\bo even begins execution and, as such, it is not possible for
388        s\bsu\bud\bdo\bo to preserve them.
389
390        To prevent command spoofing, s\bsu\bud\bdo\bo checks "." and "" (both denoting
391
392
393
394 1.7.0                   November 15, 2008                       6
395
396
397
398
399
400 SUDO(1m)               MAINTENANCE COMMANDS              SUDO(1m)
401
402
403        current directory) last when searching for a command in the user's PATH
404        (if one or both are in the PATH).  Note, however, that the actual PATH
405        environment variable is _\bn_\bo_\bt modified and is passed unchanged to the
406        program that s\bsu\bud\bdo\bo executes.
407
408        s\bsu\bud\bdo\bo will check the ownership of its timestamp directory (_\b/_\bv_\ba_\br_\b/_\br_\bu_\bn_\b/_\bs_\bu_\bd_\bo
409        by default) and ignore the directory's contents if it is not owned by
410        root or if it is writable by a user other than root.  On systems that
411        allow non-root users to give away files via _\bc_\bh_\bo_\bw_\bn(2), if the timestamp
412        directory is located in a directory writable by anyone (e.g., _\b/_\bt_\bm_\bp), it
413        is possible for a user to create the timestamp directory before s\bsu\bud\bdo\bo is
414        run.  However, because s\bsu\bud\bdo\bo checks the ownership and mode of the
415        directory and its contents, the only damage that can be done is to
416        "hide" files by putting them in the timestamp dir.  This is unlikely to
417        happen since once the timestamp dir is owned by root and inaccessible
418        by any other user, the user placing files there would be unable to get
419        them back out.  To get around this issue you can use a directory that
420        is not world-writable for the timestamps (_\b/_\bv_\ba_\br_\b/_\ba_\bd_\bm_\b/_\bs_\bu_\bd_\bo for instance)
421        or create _\b/_\bv_\ba_\br_\b/_\br_\bu_\bn_\b/_\bs_\bu_\bd_\bo with the appropriate owner (root) and
422        permissions (0700) in the system startup files.
423
424        s\bsu\bud\bdo\bo will not honor timestamps set far in the future.  Timestamps with
425        a date greater than current_time + 2 * TIMEOUT will be ignored and sudo
426        will log and complain.  This is done to keep a user from creating
427        his/her own timestamp with a bogus date on systems that allow users to
428        give away files.
429
430        Please note that s\bsu\bud\bdo\bo will normally only log the command it explicitly
431        runs.  If a user runs a command such as sudo su or sudo sh, subsequent
432        commands run from that shell will _\bn_\bo_\bt be logged, nor will s\bsu\bud\bdo\bo's access
433        control affect them.  The same is true for commands that offer shell
434        escapes (including most editors).  Because of this, care must be taken
435        when giving users access to commands via s\bsu\bud\bdo\bo to verify that the
436        command does not inadvertently give the user an effective root shell.
437        For more information, please see the PREVENTING SHELL ESCAPES section
438        in _\bs_\bu_\bd_\bo_\be_\br_\bs(4).
439
440 E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
441        s\bsu\bud\bdo\bo utilizes the following environment variables:
442
443        EDITOR          Default editor to use in -\b-e\be (sudoedit) mode if neither
444                        SUDO_EDITOR nor VISUAL is set
445
446        HOME            In -\b-s\bs or -\b-H\bH mode (or if sudo was configured with the
447                        --enable-shell-sets-home option), set to homedir of the
448                        target user
449
450        PATH            Set to a sane value if the _\bs_\be_\bc_\bu_\br_\be_\b__\bp_\ba_\bt_\bh sudoers option
451                        is set.
452
453        SHELL           Used to determine shell to run with -s option
454
455        SUDO_ASKPASS    Specifies the path to a helper program used to read the
456                        password if no terminal is available or if the -A
457
458
459
460 1.7.0                   November 15, 2008                       7
461
462
463
464
465
466 SUDO(1m)               MAINTENANCE COMMANDS              SUDO(1m)
467
468
469                        option is specified.
470
471        SUDO_COMMAND    Set to the command run by sudo
472
473        SUDO_EDITOR     Default editor to use in -\b-e\be (sudoedit) mode
474
475        SUDO_GID        Set to the group ID of the user who invoked sudo
476
477        SUDO_PROMPT     Used as the default password prompt
478
479        SUDO_PS1        If set, PS1 will be set to its value for the program
480                        being run
481
482        SUDO_UID        Set to the user ID of the user who invoked sudo
483
484        SUDO_USER       Set to the login of the user who invoked sudo
485
486        USER            Set to the target user (root unless the -\b-u\bu option is
487                        specified)
488
489        VISUAL          Default editor to use in -\b-e\be (sudoedit) mode if
490                        SUDO_EDITOR is not set
491
492 F\bFI\bIL\bLE\bES\bS
493        _\b/_\be_\bt_\bc_\b/_\bs_\bu_\bd_\bo_\be_\br_\bs            List of who can run what
494
495        _\b/_\bv_\ba_\br_\b/_\br_\bu_\bn_\b/_\bs_\bu_\bd_\bo           Directory containing timestamps
496
497        _\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
498                                AIX
499
500 E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
501        Note: the following examples assume suitable _\bs_\bu_\bd_\bo_\be_\br_\bs(4) entries.
502
503        To get a file listing of an unreadable directory:
504
505         $ sudo ls /usr/local/protected
506
507        To list the home directory of user yazza on a machine where the file
508        system holding ~yazza is not exported as root:
509
510         $ sudo -u yazza ls ~yazza
511
512        To edit the _\bi_\bn_\bd_\be_\bx_\b._\bh_\bt_\bm_\bl file as user www:
513
514         $ sudo -u www vi ~www/htdocs/index.html
515
516        To shutdown a machine:
517
518         $ sudo shutdown -r +15 "quick reboot"
519
520        To make a usage listing of the directories in the /home partition.
521        Note that this runs the commands in a sub-shell to make the cd and file
522        redirection work.
523
524
525
526 1.7.0                   November 15, 2008                       8
527
528
529
530
531
532 SUDO(1m)               MAINTENANCE COMMANDS              SUDO(1m)
533
534
535         $ sudo sh -c "cd /home ; du -s * | sort -rn > USAGE"
536
537 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
538        _\bg_\br_\be_\bp(1), _\bs_\bu(1), _\bs_\bt_\ba_\bt(2), _\bl_\bo_\bg_\bi_\bn_\b__\bc_\ba_\bp(3), _\bp_\ba_\bs_\bs_\bw_\bd(4), _\bs_\bu_\bd_\bo_\be_\br_\bs(5),
539        _\bv_\bi_\bs_\bu_\bd_\bo(1m)
540
541 A\bAU\bUT\bTH\bHO\bOR\bRS\bS
542        Many people have worked on s\bsu\bud\bdo\bo over the years; this version consists
543        of code written primarily by:
544
545                Todd C. Miller
546
547        See the HISTORY file in the s\bsu\bud\bdo\bo distribution or visit
548        http://www.sudo.ws/sudo/history.html for a short history of s\bsu\bud\bdo\bo.
549
550 C\bCA\bAV\bVE\bEA\bAT\bTS\bS
551        There is no easy way to prevent a user from gaining a root shell if
552        that user is allowed to run arbitrary commands via s\bsu\bud\bdo\bo.  Also, many
553        programs (such as editors) allow the user to run commands via shell
554        escapes, thus avoiding s\bsu\bud\bdo\bo's checks.  However, on most systems it is
555        possible to prevent shell escapes with s\bsu\bud\bdo\bo's _\bn_\bo_\be_\bx_\be_\bc functionality.
556        See the _\bs_\bu_\bd_\bo_\be_\br_\bs(4) manual for details.
557
558        It is not meaningful to run the cd command directly via sudo, e.g.,
559
560         $ sudo cd /usr/local/protected
561
562        since when the command exits the parent process (your shell) will still
563        be the same.  Please see the EXAMPLES section for more information.
564
565        If users have sudo ALL there is nothing to prevent them from creating
566        their own program that gives them a root shell regardless of any '!'
567        elements in the user specification.
568
569        Running shell scripts via s\bsu\bud\bdo\bo can expose the same kernel bugs that
570        make setuid shell scripts unsafe on some operating systems (if your OS
571        has a /dev/fd/ directory, setuid shell scripts are generally safe).
572
573 B\bBU\bUG\bGS\bS
574        If you feel you have found a bug in s\bsu\bud\bdo\bo, please submit a bug report at
575        http://www.sudo.ws/sudo/bugs/
576
577 S\bSU\bUP\bPP\bPO\bOR\bRT\bT
578        Limited free support is available via the sudo-users mailing list, see
579        http://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or search
580        the archives.
581
582 D\bDI\bIS\bSC\bCL\bLA\bAI\bIM\bME\bER\bR
583        s\bsu\bud\bdo\bo is provided ``AS IS'' and any express or implied warranties,
584        including, but not limited to, the implied warranties of
585        merchantability and fitness for a particular purpose are disclaimed.
586        See the LICENSE file distributed with s\bsu\bud\bdo\bo or
587        http://www.sudo.ws/sudo/license.html for complete details.
588
589
590
591
592 1.7.0                   November 15, 2008                       9
593
594