diff options
author | Todd C. Miller <millert@cvs.openbsd.org> | 2004-09-28 15:10:52 +0000 |
---|---|---|
committer | Todd C. Miller <millert@cvs.openbsd.org> | 2004-09-28 15:10:52 +0000 |
commit | b2ce21d7e22822255c394cc618c029fdcd31be4d (patch) | |
tree | ba0dcff50d70b05985ecb9590c0bf828c151a021 /usr.bin/sudo/sudo.8 | |
parent | 6d2330fc528f6b282a6ed3bff15e92d30ee98805 (diff) |
Update to sudo 1.6.8p1
Diffstat (limited to 'usr.bin/sudo/sudo.8')
-rw-r--r-- | usr.bin/sudo/sudo.8 | 448 |
1 files changed, 280 insertions, 168 deletions
diff --git a/usr.bin/sudo/sudo.8 b/usr.bin/sudo/sudo.8 index 0040a8e9658..2640ee5600f 100644 --- a/usr.bin/sudo/sudo.8 +++ b/usr.bin/sudo/sudo.8 @@ -1,38 +1,24 @@ .\" Copyright (c) 1994-1996,1998-2003 Todd C. Miller <Todd.Miller@courtesan.com> -.\" All rights reserved. .\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. .\" -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" 3. The name of the author may not be used to endorse or promote products -.\" derived from this software without specific prior written permission -.\" from the author. -.\" -.\" 4. Products derived from this software may not be called "Sudo" nor -.\" may "Sudo" appear in their names without specific prior written -.\" permission from the author. -.\" -.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, -.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY -.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL -.\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $Sudo: sudo.man.in,v 1.16 2003/03/15 20:33:31 millert Exp $ -.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13 +.\" Sponsored in part by the Defense Advanced Research Projects +.\" Agency (DARPA) and Air Force Research Laboratory, Air Force +.\" Materiel Command, USAF, under agreement number F39502-99-1-0512. +.\" +.\" $Sudo: sudo.man.in,v 1.31 2004/09/08 18:35:53 millert Exp $ +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 .\" .\" Standard preamble: .\" ======================================================================== @@ -163,27 +149,38 @@ .\" ======================================================================== .\" .IX Title "SUDO 8" -.TH SUDO 8 "March 13, 2003" "1.6.7" "MAINTENANCE COMMANDS" +.TH SUDO 8 "September 8, 2004" "1.6.8" "MAINTENANCE COMMANDS" .SH "NAME" -sudo \- execute a command as another user +sudo, sudoedit \- execute a command as another user .SH "SYNOPSIS" .IX Header "SYNOPSIS" -\&\fBsudo\fR \fB\-V\fR | \fB\-h\fR | \fB\-l\fR | \fB\-L\fR | \fB\-v\fR | \fB\-k\fR | \fB\-K\fR | \fB\-s\fR | -[ \fB\-H\fR ] [\fB\-P\fR ] [\fB\-S\fR ] [ \fB\-b\fR ] | [ \fB\-p\fR \fIprompt\fR ] -[ \fB\-c\fR \fIclass\fR|\fI\-\fR ] [ \fB\-a\fR \fIauth_type\fR ] -[ \fB\-u\fR \fIusername\fR|\fI#uid\fR ] \fIcommand\fR +\&\fBsudo\fR \fB\-K\fR | \fB\-L\fR | \fB\-V\fR | \fB\-h\fR | \fB\-k\fR | \fB\-l\fR | \fB\-v\fR +.PP +\&\fBsudo\fR [\fB\-HPSb\fR] [\fB\-a\fR\ \fIauth_type\fR] [\fB\-c\fR\ \fIclass\fR|\fI\-\fR] +[\fB\-p\fR\ \fIprompt\fR] [\fB\-u\fR\ \fIusername\fR|\fI#uid\fR] +{\fB\-e\fR\ file\ [...]\ |\ \fB\-i\fR\ |\ \fB\-s\fR\ |\ \fIcommand\fR} +.PP +\&\fBsudoedit\fR [\fB\-S\fR] [\fB\-a\fR\ \fIauth_type\fR] +[\fB\-p\fR\ \fIprompt\fR] [\fB\-u\fR\ \fIusername\fR|\fI#uid\fR] +file [...] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBsudo\fR allows a permitted user to execute a \fIcommand\fR as the superuser or another user, as specified in the \fIsudoers\fR file. The real and effective uid and gid are set to match those of the -target user as specified in the passwd file (the group vector is -also initialized when the target user is not root). By default, +target user as specified in the passwd file and the group vector +is initialized based on the group file (unless the \fB\-P\fR option was +specified). If the invoking user is root or if the target user is +the same as the invoking user, no password is required. Otherwise, \&\fBsudo\fR requires that users authenticate themselves with a password -(\s-1NOTE:\s0 by default this is the user's password, not the root password). -Once a user has been authenticated, a timestamp is updated and the -user may then use sudo without a password for a short period of -time (\f(CW\*(C`5\*(C'\fR minutes unless overridden in \fIsudoers\fR). +by default (\s-1NOTE:\s0 in the default configuration this is the user's +password, not the root password). Once a user has been authenticated, +a timestamp is updated and the user may then use sudo without a +password for a short period of time (\f(CW\*(C`5\*(C'\fR minutes unless +overridden in \fIsudoers\fR). +.PP +When invoked as \fBsudoedit\fR, the \fB\-e\fR option (described below), +is implied. .PP \&\fBsudo\fR determines who is an authorized user by consulting the file \&\fI/etc/sudoers\fR. By giving \fBsudo\fR the \fB\-v\fR flag a user @@ -194,11 +191,19 @@ entered within \f(CW\*(C`5\*(C'\fR minutes (unless overridden via .PP If a user who is not listed in the \fIsudoers\fR file tries to run a command via \fBsudo\fR, mail is sent to the proper authorities, as -defined at configure time or the \fIsudoers\fR file (defaults to root). -Note that the mail will not be sent if an unauthorized user tries -to run sudo with the \fB\-l\fR or \fB\-v\fR flags. This allows users to -determine for themselves whether or not they are allowed to use -\&\fBsudo\fR. +defined at configure time or in the \fIsudoers\fR file (defaults to +\&\f(CW\*(C`root\*(C'\fR). Note that the mail will not be sent if an unauthorized +user tries to run sudo with the \fB\-l\fR or \fB\-v\fR flags. This allows +users to determine for themselves whether or not they are allowed +to use \fBsudo\fR. +.PP +If \fBsudo\fR is run by root and the \f(CW\*(C`SUDO_USER\*(C'\fR environment variable +is set, \fBsudo\fR will use this value to determine who the actual +user is. This can be used by a user to log commands through sudo +even when a root shell has been invoked. It also allows the \fB\-e\fR +flag to remain useful even when being run via a sudo-run script or +program. Note however, that the sudoers lookup is still done for +root, not the user specified by \f(CW\*(C`SUDO_USER\*(C'\fR. .PP \&\fBsudo\fR can log both successful and unsuccessful attempts (as well as errors) to \fIsyslog\fR\|(3), a log file, or both. By default \fBsudo\fR @@ -207,31 +212,111 @@ or via the \fIsudoers\fR file. .SH "OPTIONS" .IX Header "OPTIONS" \&\fBsudo\fR accepts the following command line options: -.IP "\-V" 4 -.IX Item "-V" -The \fB\-V\fR (\fIversion\fR) option causes \fBsudo\fR to print the -version number and exit. If the invoking user is already root -the \fB\-V\fR option will print out a list of the defaults \fBsudo\fR -was compiled with as well as the machine's local network addresses. -.IP "\-l" 4 -.IX Item "-l" -The \fB\-l\fR (\fIlist\fR) option will list out the allowed (and -forbidden) commands for the user on the current host. +.IP "\-H" 4 +.IX Item "-H" +The \fB\-H\fR (\fI\s-1HOME\s0\fR) option sets the \f(CW\*(C`HOME\*(C'\fR environment variable +to the homedir of the target user (root by default) as specified +in passwd(5). By default, \fBsudo\fR does not modify \f(CW\*(C`HOME\*(C'\fR +(see \fIset_home\fR and \fIalways_set_home\fR in sudoers(5)). +.IP "\-K" 4 +.IX Item "-K" +The \fB\-K\fR (sure \fIkill\fR) option is like \fB\-k\fR except that it removes +the user's timestamp entirely. Like \fB\-k\fR, this option does not +require a password. .IP "\-L" 4 .IX Item "-L" The \fB\-L\fR (\fIlist\fR defaults) option will list out the parameters that may be set in a \fIDefaults\fR line along with a short description for each. This option is useful in conjunction with \fIgrep\fR\|(1). +.IP "\-P" 4 +.IX Item "-P" +The \fB\-P\fR (\fIpreserve group vector\fR) option causes \fBsudo\fR to +preserve the invoking user's group vector unaltered. By default, +\&\fBsudo\fR will initialize the group vector to the list of groups the +target user is in. The real and effective group IDs, however, are +still set to match the target user. +.IP "\-S" 4 +.IX Item "-S" +The \fB\-S\fR (\fIstdin\fR) option causes \fBsudo\fR to read the password from +the standard input instead of the terminal device. +.IP "\-V" 4 +.IX Item "-V" +The \fB\-V\fR (\fIversion\fR) option causes \fBsudo\fR to print the version +number and exit. If the invoking user is already root the \fB\-V\fR +option will print out a list of the defaults \fBsudo\fR was compiled +with as well as the machine's local network addresses. +.IP "\-a" 4 +.IX Item "-a" +The \fB\-a\fR (\fIauthentication type\fR) option causes \fBsudo\fR to use the +specified authentication type when validating the user, as allowed +by /etc/login.conf. The system administrator may specify a list +of sudo-specific authentication methods by adding an \*(L"auth\-sudo\*(R" +entry in /etc/login.conf. This option is only available on systems +that support \s-1BSD\s0 authentication where \fBsudo\fR has been configured +with the \-\-with\-bsdauth option. +.IP "\-b" 4 +.IX Item "-b" +The \fB\-b\fR (\fIbackground\fR) option tells \fBsudo\fR to run the given +command in the background. Note that if you use the \fB\-b\fR +option you cannot use shell job control to manipulate the process. +.IP "\-c" 4 +.IX Item "-c" +The \fB\-c\fR (\fIclass\fR) option causes \fBsudo\fR to run the specified command +with resources limited by the specified login class. The \fIclass\fR +argument can be either a class name as defined in /etc/login.conf, +or a single '\-' character. Specifying a \fIclass\fR of \f(CW\*(C`\-\*(C'\fR indicates +that the command should be run restricted by the default login +capabilities for the user the command is run as. If the \fIclass\fR +argument specifies an existing user class, the command must be run +as root, or the \fBsudo\fR command must be run from a shell that is already +root. This option is only available on systems with \s-1BSD\s0 login classes +where \fBsudo\fR has been configured with the \-\-with\-logincap option. +.IP "\-e" 4 +.IX Item "-e" +The \fB\-e\fR (\fIedit\fR) option indicates that, instead of running +a command, the user wishes to edit one or more files. In lieu +of a command, the string \*(L"sudoedit\*(R" is used when consulting +the \fIsudoers\fR file. If the user is authorized by \fIsudoers\fR +the following steps are taken: +.RS 4 +.IP "1." 8 +Temporary copies are made of the files to be edited with the owner +set to the invoking user. +.IP "2." 8 +The editor specified by the \f(CW\*(C`VISUAL\*(C'\fR or \f(CW\*(C`EDITOR\*(C'\fR environment +variables is run to edit the temporary files. If neither \f(CW\*(C`VISUAL\*(C'\fR +nor \f(CW\*(C`EDITOR\*(C'\fR are set, the program listed in the \fIeditor\fR \fIsudoers\fR +variable is used. +.IP "3." 8 +If they have been modified, the temporary files are copied back to +their original location and the temporary versions are removed. +.RE +.RS 4 +.Sp +If the specified file does not exist, it will be created. Note +that unlike most commands run by \fBsudo\fR, the editor is run with +the invoking user's environment unmodified. If, for some reason, +\&\fBsudo\fR is unable to update a file with its edited version, the +user will receive a warning and the edited copy will remain in a +temporary file. +.RE .IP "\-h" 4 .IX Item "-h" The \fB\-h\fR (\fIhelp\fR) option causes \fBsudo\fR to print a usage message and exit. -.IP "\-v" 4 -.IX Item "-v" -If given the \fB\-v\fR (\fIvalidate\fR) option, \fBsudo\fR will update the -user's timestamp, prompting for the user's password if necessary. -This extends the \fBsudo\fR timeout for another \f(CW\*(C`5\*(C'\fR minutes -(or whatever the timeout is set to in \fIsudoers\fR) but does not run -a command. +.IP "\-i" 4 +.IX Item "-i" +The \fB\-i\fR (\fIsimulate initial login\fR) option runs the shell specified +in the passwd(5) entry of the user that the command is +being run as. The command name argument given to the shell begins +with a \f(CW\*(C`\-\*(C'\fR to tell the shell to run as a login shell. \fBsudo\fR +attempts to change to that user's home directory before running the +shell. It also initializes the environment, leaving \fI\s-1TERM\s0\fR +unchanged, setting \fI\s-1HOME\s0\fR, \fI\s-1SHELL\s0\fR, \fI\s-1USER\s0\fR, \fI\s-1LOGNAME\s0\fR, and +\&\fI\s-1PATH\s0\fR, and unsetting all other environment variables. Note that +because the shell to use is determined before the \fIsudoers\fR file +is parsed, a \fIrunas_default\fR setting in \fIsudoers\fR will specify +the user to run the shell as but will not affect which shell is +actually run. .IP "\-k" 4 .IX Item "-k" The \fB\-k\fR (\fIkill\fR) option to \fBsudo\fR invalidates the user's timestamp @@ -239,15 +324,10 @@ by setting the time on it to the epoch. The next time \fBsudo\fR is run a password will be required. This option does not require a password and was added to allow a user to revoke \fBsudo\fR permissions from a .logout file. -.IP "\-K" 4 -.IX Item "-K" -The \fB\-K\fR (sure \fIkill\fR) option to \fBsudo\fR removes the user's timestamp -entirely. Likewise, this option does not require a password. -.IP "\-b" 4 -.IX Item "-b" -The \fB\-b\fR (\fIbackground\fR) option tells \fBsudo\fR to run the given -command in the background. Note that if you use the \fB\-b\fR -option you cannot use shell job control to manipulate the process. +.IP "\-l" 4 +.IX Item "-l" +The \fB\-l\fR (\fIlist\fR) option will list out the allowed (and +forbidden) commands for the user on the current host. .IP "\-p" 4 .IX Item "-p" The \fB\-p\fR (\fIprompt\fR) option allows you to override the default @@ -276,57 +356,29 @@ sudoers option is set) .ie n .IP "\*(C`%%\*(C'" 8 .el .IP "\f(CW\*(C`%%\*(C'\fR" 8 .IX Item "%%" -two consecutive \f(CW\*(C`%\*(C'\fR characters are collaped into a single \f(CW\*(C`%\*(C'\fR character +two consecutive \f(CW\*(C`%\*(C'\fR characters are collapsed into a single \f(CW\*(C`%\*(C'\fR character .RE .RS 4 .RE -.IP "\-c" 4 -.IX Item "-c" -The \fB\-c\fR (\fIclass\fR) option causes \fBsudo\fR to run the specified command -with resources limited by the specified login class. The \fIclass\fR -argument can be either a class name as defined in /etc/login.conf, -or a single '\-' character. Specifying a \fIclass\fR of \f(CW\*(C`\-\*(C'\fR indicates -that the command should be run restricted by the default login -capabilities for the user the command is run as. If the \fIclass\fR -argument specifies an existing user class, the command must be run -as root, or the \fBsudo\fR command must be run from a shell that is already -root. This option is only available on systems with \s-1BSD\s0 login classes -where \fBsudo\fR has been configured with the \-\-with\-logincap option. -.IP "\-a" 4 -.IX Item "-a" -The \fB\-a\fR (\fIauthentication type\fR) option causes \fBsudo\fR to use the -specified authentication type when validating the user, as allowed -by /etc/login.conf. The system administrator may specify a list -of sudo-specific authentication methods by adding an \*(L"auth\-sudo\*(R" -entry in /etc/login.conf. This option is only available on systems -that support \s-1BSD\s0 authentication where \fBsudo\fR has been configured -with the \-\-with\-bsdauth option. -.IP "\-u" 4 -.IX Item "-u" -The \fB\-u\fR (\fIuser\fR) option causes \fBsudo\fR to run the specified command -as a user other than \fIroot\fR. To specify a \fIuid\fR instead of a -\&\fIusername\fR, use \fI#uid\fR. .IP "\-s" 4 .IX Item "-s" The \fB\-s\fR (\fIshell\fR) option runs the shell specified by the \fI\s-1SHELL\s0\fR environment variable if it is set or the shell as specified -in \fIpasswd\fR\|(5). -.IP "\-H" 4 -.IX Item "-H" -The \fB\-H\fR (\fI\s-1HOME\s0\fR) option sets the \f(CW\*(C`HOME\*(C'\fR environment variable -to the homedir of the target user (root by default) as specified -in \fIpasswd\fR\|(5). By default, \fBsudo\fR does not modify \f(CW\*(C`HOME\*(C'\fR. -.IP "\-P" 4 -.IX Item "-P" -The \fB\-P\fR (\fIpreserve group vector\fR) option causes \fBsudo\fR to preserve -the user's group vector unaltered. By default, \fBsudo\fR will initialize -the group vector to the list of groups the target user is in. -The real and effective group IDs, however, are still set to match -the target user. -.IP "\-S" 4 -.IX Item "-S" -The \fB\-S\fR (\fIstdin\fR) option causes \fBsudo\fR to read the password from -standard input instead of the terminal device. +in passwd(5). +.IP "\-u" 4 +.IX Item "-u" +The \fB\-u\fR (\fIuser\fR) option causes \fBsudo\fR to run the specified command +as a user other than \fIroot\fR. To specify a \fIuid\fR instead of a +\&\fIusername\fR, use \fI#uid\fR. Note that if the \fItargetpw\fR Defaults +option is set (see sudoers(5)) it is not possible +to run commands with a uid not listed in the password database. +.IP "\-v" 4 +.IX Item "-v" +If given the \fB\-v\fR (\fIvalidate\fR) option, \fBsudo\fR will update the +user's timestamp, prompting for the user's password if necessary. +This extends the \fBsudo\fR timeout for another \f(CW\*(C`5\*(C'\fR minutes +(or whatever the timeout is set to in \fIsudoers\fR) but does not run +a command. .IP "\-\-" 4 The \fB\-\-\fR flag indicates that \fBsudo\fR should stop processing command line arguments. It is most useful in conjunction with the \fB\-s\fR flag. @@ -408,60 +460,61 @@ commands that offer shell escapes (including most editors). Because of this, care must be taken when giving users access to commands via \fBsudo\fR to verify that the command does not inadvertently give the user an effective root shell. -.SH "EXAMPLES" -.IX Header "EXAMPLES" -Note: the following examples assume suitable \fIsudoers\fR\|(5) entries. +.SH "ENVIRONMENT" +.IX Header "ENVIRONMENT" +\&\fBsudo\fR utilizes the following environment variables: .PP -To get a file listing of an unreadable directory: +.Vb 2 +\& EDITOR Default editor to use in -e (sudoedit) mode if +\& VISUAL is not set +.Ve .PP -.Vb 1 -\& % sudo ls /usr/local/protected +.Vb 3 +\& HOME In -s or -H mode (or if sudo was configured with +\& the --enable-shell-sets-home option), set to +\& homedir of the target user .Ve .PP -To list the home directory of user yazza on a machine where the -filesystem holding ~yazza is not exported as root: +.Vb 2 +\& PATH Set to a sane value if sudo was configured with +\& the --with-secure-path option +.Ve .PP .Vb 1 -\& % sudo -u yazza ls ~yazza +\& SHELL Used to determine shell to run with -s option .Ve .PP -To edit the \fIindex.html\fR file as user www: +.Vb 1 +\& SUDO_PROMPT Used as the default password prompt +.Ve .PP .Vb 1 -\& % sudo -u www vi ~www/htdocs/index.html +\& SUDO_COMMAND Set to the command run by sudo .Ve .PP -To shutdown a machine: +.Vb 1 +\& SUDO_USER Set to the login of the user who invoked sudo +.Ve .PP .Vb 1 -\& % sudo shutdown -r +15 "quick reboot" +\& SUDO_UID Set to the uid of the user who invoked sudo .Ve .PP -To make a usage listing of the directories in the /home -partition. Note that this runs the commands in a sub-shell -to make the \f(CW\*(C`cd\*(C'\fR and file redirection work. +.Vb 1 +\& SUDO_GID Set to the gid of the user who invoked sudo +.Ve .PP .Vb 1 -\& % sudo sh -c "cd /home ; du -s * | sort -rn > USAGE" +\& SUDO_PS1 If set, PS1 will be set to its value .Ve -.SH "ENVIRONMENT" -.IX Header "ENVIRONMENT" -\&\fBsudo\fR utilizes the following environment variables: .PP -.Vb 13 -\& PATH Set to a sane value if SECURE_PATH is set -\& SHELL Used to determine shell to run with -s option +.Vb 2 \& USER Set to the target user (root unless the -u option \& is specified) -\& HOME In -s or -H mode (or if sudo was configured with -\& the --enable-shell-sets-home option), set to -\& homedir of the target user. -\& SUDO_PROMPT Used as the default password prompt -\& SUDO_COMMAND Set to the command run by sudo -\& SUDO_USER Set to the login of the user who invoked sudo -\& SUDO_UID Set to the uid of the user who invoked sudo -\& SUDO_GID Set to the gid of the user who invoked sudo -\& SUDO_PS1 If set, PS1 will be set to its value +.Ve +.PP +.Vb 1 +\& VISUAL Default editor to use in -e (sudoedit) mode .Ve .SH "FILES" .IX Header "FILES" @@ -469,6 +522,46 @@ to make the \f(CW\*(C`cd\*(C'\fR and file redirection work. \& /etc/sudoers List of who can run what \& /var/run/sudo Directory containing timestamps .Ve +.SH "EXAMPLES" +.IX Header "EXAMPLES" +Note: the following examples assume suitable sudoers(5) entries. +.PP +To get a file listing of an unreadable directory: +.PP +.Vb 1 +\& $ sudo ls /usr/local/protected +.Ve +.PP +To list the home directory of user yazza on a machine where the +file system holding ~yazza is not exported as root: +.PP +.Vb 1 +\& $ sudo -u yazza ls ~yazza +.Ve +.PP +To edit the \fIindex.html\fR file as user www: +.PP +.Vb 1 +\& $ sudo -u www vi ~www/htdocs/index.html +.Ve +.PP +To shutdown a machine: +.PP +.Vb 1 +\& $ sudo shutdown -r +15 "quick reboot" +.Ve +.PP +To make a usage listing of the directories in the /home +partition. Note that this runs the commands in a sub-shell +to make the \f(CW\*(C`cd\*(C'\fR and file redirection work. +.PP +.Vb 1 +\& $ sudo sh -c "cd /home ; du -s * | sort -rn > USAGE" +.Ve +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fIgrep\fR\|(1), \fIsu\fR\|(1), \fIstat\fR\|(2), \fIlogin_cap\fR\|(3), sudoers(5), +passwd(5), visudo(8) .SH "AUTHORS" .IX Header "AUTHORS" Many people have worked on \fBsudo\fR over the years; this @@ -482,29 +575,48 @@ version consists of code written primarily by: See the \s-1HISTORY\s0 file in the \fBsudo\fR distribution or visit http://www.sudo.ws/sudo/history.html for a short history of \fBsudo\fR. +.SH "CAVEATS" +.IX Header "CAVEATS" +There is no easy way to prevent a user from gaining a root shell +if that user is allowed to run arbitrary commands via \fBsudo\fR. +Also, many programs (such as editors) allow the user to run commands +via shell escapes, thus avoiding \fBsudo\fR's checks. However, on +most systems it is possible to prevent shell escapes with \fBsudo\fR's +\&\fInoexec\fR functionality. See the sudoers(5) manual +for details. +.PP +It is not meaningful to run the \f(CW\*(C`cd\*(C'\fR command directly via sudo, e.g. +.PP +.Vb 1 +\& $ sudo cd /usr/local/protected +.Ve +.PP +since when whe command exits the parent process (your shell) will +still be the same. Please see the \s-1EXAMPLES\s0 section for more information. +.PP +If users have sudo \f(CW\*(C`ALL\*(C'\fR there is nothing to prevent them from +creating their own program that gives them a root shell regardless +of any '!' elements in the user specification. +.PP +Running shell scripts via \fBsudo\fR can expose the same kernel bugs that +make setuid shell scripts unsafe on some operating systems (if your \s-1OS\s0 +has a /dev/fd/ directory, setuid shell scripts are generally safe). .SH "BUGS" .IX Header "BUGS" -If you feel you have found a bug in sudo, please submit a bug report +If you feel you have found a bug in \fBsudo\fR, please submit a bug report at http://www.sudo.ws/sudo/bugs/ +.SH "SUPPORT" +.IX Header "SUPPORT" +Commercial support is available for \fBsudo\fR, see +http://www.sudo.ws/sudo/support.html for details. +.PP +Limited free support is available via the sudo-users mailing list, +see http://www.sudo.ws/mailman/listinfo/sudo\-users to subscribe or +search the archives. .SH "DISCLAIMER" .IX Header "DISCLAIMER" \&\fBSudo\fR is provided ``\s-1AS\s0 \s-1IS\s0'' and any express or implied warranties, including, but not limited to, the implied warranties of merchantability -and fitness for a particular purpose are disclaimed. -See the \s-1LICENSE\s0 file distributed with \fBsudo\fR for complete details. -.SH "CAVEATS" -.IX Header "CAVEATS" -There is no easy way to prevent a user from gaining a root shell if -that user has access to commands allowing shell escapes. -.PP -If users have sudo \f(CW\*(C`ALL\*(C'\fR there is nothing to prevent them from creating -their own program that gives them a root shell regardless of any '!' -elements in the user specification. -.PP -Running shell scripts via \fBsudo\fR can expose the same kernel bugs -that make setuid shell scripts unsafe on some operating systems -(if your \s-1OS\s0 supports the /dev/fd/ directory, setuid shell scripts -are generally safe). -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fIgrep\fR\|(1), \fIsu\fR\|(1), \fIstat\fR\|(2), \fIlogin_cap\fR\|(3), \fIsudoers\fR\|(5), \fIpasswd\fR\|(5), \fIvisudo\fR\|(8) +and fitness for a particular purpose are disclaimed. See the \s-1LICENSE\s0 +file distributed with \fBsudo\fR or http://www.sudo.ws/sudo/license.html +for complete details. |