X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sudo.man.in;h=b4a53ce6150ad26cb12b56e75769ae2d66f93555;hb=83cad190740ab8312cf2ea953c1bf9dee2e965bf;hp=4f92cf1077a0d5aa08edbf0dbdc555c77507a1c2;hpb=c6cb9418e5b85abeb8dd9274b2e8c049fc0f9b5b;p=debian%2Fsudo diff --git a/sudo.man.in b/sudo.man.in index 4f92cf1..b4a53ce 100644 --- a/sudo.man.in +++ b/sudo.man.in @@ -1,4 +1,4 @@ -.\" Copyright (c) 1994-1996, 1998-2005, 2007 +.\" Copyright (c) 1994-1996, 1998-2005, 2007-2009 .\" Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -18,19 +18,10 @@ .\" 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.29.2.19 2008/01/05 23:59:42 millert Exp $ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 +.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07) .\" .\" Standard preamble: .\" ======================================================================== -.de Sh \" Subsection heading -.br -.if t .Sp -.ne 5 -.PP -\fB\\$1\fR -.PP -.. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp @@ -46,11 +37,11 @@ .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left -.\" double quote, and \*(R" will give a right double quote. | will give a -.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to -.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' -.\" expand to `' in nroff, nothing in troff, for use with C<>. -.tr \(*W-|\(bv\*(Tr +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- @@ -69,22 +60,25 @@ . ds R" '' 'br\} .\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" .\" If the F register is turned on, we'll generate index entries on stderr for -.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. -.if \nF \{\ +.ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} -.\" -.\" For nroff, turn off justification. Always turn off hyphenation; it makes -.\" way too many mistakes in technical documents. -.hy 0 -.if n .na +.el \{\ +. de IX +.. +.\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. @@ -150,20 +144,41 @@ .\" ======================================================================== .\" .IX Title "SUDO @mansectsu@" -.TH SUDO @mansectsu@ "January 5, 2008" "1.6.9p11" "MAINTENANCE COMMANDS" +.TH SUDO @mansectsu@ "March 3, 2010" "1.7.2p6" "MAINTENANCE COMMANDS" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh .SH "NAME" sudo, sudoedit \- execute a command as another user .SH "SYNOPSIS" .IX Header "SYNOPSIS" -\&\fBsudo\fR \fB\-h\fR | \fB\-K\fR | \fB\-k\fR | \fB\-L\fR | \fB\-l\fR | \fB\-V\fR | \fB\-v\fR -.PP -\&\fBsudo\fR [\fB\-bEHPS\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\s-1VAR\s0\fR=\fIvalue\fR] {\fB\-i\fR\ |\ \fB\-s\fR\ |\ \fIcommand\fR} -.PP -\&\fBsudoedit\fR [\fB\-S\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] -file ... +\&\fBsudo\fR \fB\-h\fR | \fB\-K\fR | \fB\-k\fR | \fB\-L\fR | \fB\-V\fR +.PP +\&\fBsudo\fR \fB\-v\fR [\fB\-AknS\fR] +@BAMAN@[\fB\-a\fR\ \fIauth_type\fR] +[\fB\-p\fR\ \fIprompt\fR] +.PP +\&\fBsudo\fR \fB\-l[l]\fR [\fB\-AknS\fR] +@BAMAN@[\fB\-a\fR\ \fIauth_type\fR] +[\fB\-g\fR\ \fIgroupname\fR|\fI#gid\fR] [\fB\-p\fR\ \fIprompt\fR] +[\fB\-U\fR\ \fIusername\fR] [\fB\-u\fR\ \fIusername\fR|\fI#uid\fR] [\fIcommand\fR] +.PP +\&\fBsudo\fR [\fB\-AbEHnPS\fR] +@BAMAN@[\fB\-a\fR\ \fIauth_type\fR] +[\fB\-C\fR\ \fIfd\fR] +@LCMAN@[\fB\-c\fR\ \fIclass\fR|\fI\-\fR] +[\fB\-g\fR\ \fIgroupname\fR|\fI#gid\fR] [\fB\-p\fR\ \fIprompt\fR] +@SEMAN@[\fB\-r\fR\ \fIrole\fR] [\fB\-t\fR\ \fItype\fR] +[\fB\-u\fR\ \fIusername\fR|\fI#uid\fR] +[\fB\s-1VAR\s0\fR=\fIvalue\fR] [\fB\-i\fR\ |\ \fB\-s\fR] [\fIcommand\fR] +.PP +\&\fBsudoedit\fR [\fB\-AnS\fR] +@BAMAN@[\fB\-a\fR\ \fIauth_type\fR] +[\fB\-C\fR\ \fIfd\fR] +@LCMAN@[\fB\-c\fR\ \fIclass\fR|\fI\-\fR] +[\fB\-g\fR\ \fIgroupname\fR|\fI#gid\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 @@ -184,17 +199,17 @@ 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@sysconfdir@/sudoers\fR. By giving \fBsudo\fR the \fB\-v\fR flag, a user -can update the time stamp without running a \fIcommand\fR. The password -prompt itself will also time out if the user's password is not -entered within \f(CW\*(C`@password_timeout@\*(C'\fR minutes (unless overridden via -\&\fIsudoers\fR). +\&\fI@sysconfdir@/sudoers\fR. By running \fBsudo\fR with the \fB\-v\fR option, +a user can update the time stamp without running a \fIcommand\fR. The +password prompt itself will also time out if the user's password +is not entered within \f(CW\*(C`@password_timeout@\*(C'\fR minutes (unless overridden +via \fIsudoers\fR). .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 in the \fIsudoers\fR file (defaults to \&\f(CW\*(C`@mailto@\*(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 +user tries to run sudo with the \fB\-l\fR or \fB\-v\fR option. This allows users to determine for themselves whether or not they are allowed to use \fBsudo\fR. .PP @@ -202,7 +217,7 @@ If \fBsudo\fR is run by root and the \f(CW\*(C`SUDO_USER\*(C'\fR environment var 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 +option 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 @@ -213,57 +228,75 @@ or via the \fIsudoers\fR file. .SH "OPTIONS" .IX Header "OPTIONS" \&\fBsudo\fR accepts the following command line options: -.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 \fI/etc/login.conf\fR. The system administrator may specify a list -of sudo-specific authentication methods by adding an \*(L"auth\-sudo\*(R" -entry in \fI/etc/login.conf\fR. This option is only available on systems -that support \s-1BSD\s0 authentication. -.IP "\-b" 4 +.IP "\-A" 12 +.IX Item "-A" +Normally, if \fBsudo\fR requires a password, it will read it from the +current terminal. If the \fB\-A\fR (\fIaskpass\fR) option is specified, +a (possibly graphical) helper program is executed to read the +user's password and output the password to the standard output. If +the \f(CW\*(C`SUDO_ASKPASS\*(C'\fR environment variable is set, it specifies the +path to the helper program. Otherwise, the value specified by the +\&\fIaskpass\fR option in \fIsudoers\fR\|(@mansectform@) is used. +@BAMAN@.IP "\-a \fItype\fR" 12 +@BAMAN@.IX Item "-a type" +@BAMAN@The \fB\-a\fR (\fIauthentication type\fR) option causes \fBsudo\fR to use the +@BAMAN@specified authentication type when validating the user, as allowed +@BAMAN@by \fI/etc/login.conf\fR. The system administrator may specify a list +@BAMAN@of sudo-specific authentication methods by adding an \*(L"auth-sudo\*(R" +@BAMAN@entry in \fI/etc/login.conf\fR. This option is only available on systems +@BAMAN@that support \s-1BSD\s0 authentication. +.IP "\-b" 12 .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 \f(CW\*(C`/etc/login.conf\*(C'\fR, -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. -.IP "\-E" 4 +.IP "\-C \fIfd\fR" 12 +.IX Item "-C fd" +Normally, \fBsudo\fR will close all open file descriptors other than +standard input, standard output and standard error. The \fB\-C\fR +(\fIclose from\fR) option allows the user to specify a starting point +above the standard error (file descriptor three). Values less than +three are not permitted. This option is only available if the +administrator has enabled the \fIclosefrom_override\fR option in +\&\fIsudoers\fR\|(@mansectform@). +@LCMAN@.IP "\-c \fIclass\fR" 12 +@LCMAN@.IX Item "-c class" +@LCMAN@The \fB\-c\fR (\fIclass\fR) option causes \fBsudo\fR to run the specified command +@LCMAN@with resources limited by the specified login class. The \fIclass\fR +@LCMAN@argument can be either a class name as defined in \fI/etc/login.conf\fR, +@LCMAN@or a single '\-' character. Specifying a \fIclass\fR of \f(CW\*(C`\-\*(C'\fR indicates +@LCMAN@that the command should be run restricted by the default login +@LCMAN@capabilities for the user the command is run as. If the \fIclass\fR +@LCMAN@argument specifies an existing user class, the command must be run +@LCMAN@as root, or the \fBsudo\fR command must be run from a shell that is already +@LCMAN@root. This option is only available on systems with \s-1BSD\s0 login classes. +.IP "\-E" 12 .IX Item "-E" The \fB\-E\fR (\fIpreserve\fR \fIenvironment\fR) option will override the \&\fIenv_reset\fR option in \fIsudoers\fR\|(@mansectform@)). It is only available when either the matching command has the \f(CW\*(C`SETENV\*(C'\fR tag or the \fIsetenv\fR option is set in \fIsudoers\fR\|(@mansectform@). -.IP "\-e" 4 +.IP "\-e" 12 .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 +.RS 12 .IP "1." 4 Temporary copies are made of the files to be edited with the owner set to the invoking user. .IP "2." 4 -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. +The editor specified by the \f(CW\*(C`SUDO_EDITOR\*(C'\fR, \f(CW\*(C`VISUAL\*(C'\fR or \f(CW\*(C`EDITOR\*(C'\fR +environment variables is run to edit the temporary files. If none +of \f(CW\*(C`SUDO_EDITOR\*(C'\fR, \f(CW\*(C`VISUAL\*(C'\fR or \f(CW\*(C`EDITOR\*(C'\fR are set, the first program +listed in the \fIeditor\fR \fIsudoers\fR variable is used. .IP "3." 4 If they have been modified, the temporary files are copied back to their original location and the temporary versions are removed. .RE -.RS 4 +.RS 12 .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 @@ -272,63 +305,92 @@ the invoking user's environment unmodified. If, for some reason, user will receive a warning and the edited copy will remain in a temporary file. .RE -.IP "\-H" 4 +.IP "\-g \fIgroup\fR" 12 +.IX Item "-g group" +Normally, \fBsudo\fR sets the primary group to the one specified by +the passwd database for the user the command is being run as (by +default, root). The \fB\-g\fR (\fIgroup\fR) option causes \fBsudo\fR to run +the specified command with the primary group set to \fIgroup\fR. To +specify a \fIgid\fR instead of a \fIgroup name\fR, use \fI#gid\fR. When +running commands as a \fIgid\fR, many shells require that the '#' be +escaped with a backslash ('\e'). If no \fB\-u\fR option is specified, +the command will be run as the invoking user (not root). In either +case, the primary group will be set to \fIgroup\fR. +.IP "\-H" 12 .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\|(@mansectform@). By default, \fBsudo\fR does not modify \f(CW\*(C`HOME\*(C'\fR (see \fIset_home\fR and \fIalways_set_home\fR in \fIsudoers\fR\|(@mansectform@)). -.IP "\-h" 4 +.IP "\-h" 12 .IX Item "-h" The \fB\-h\fR (\fIhelp\fR) option causes \fBsudo\fR to print a usage message and exit. -.IP "\-i" 4 -.IX Item "-i" +.IP "\-i [command]" 12 +.IX Item "-i [command]" The \fB\-i\fR (\fIsimulate initial login\fR) option runs the shell specified -in the \fIpasswd\fR\|(@mansectform@) 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 +in the \fIpasswd\fR\|(@mansectform@) entry of the target user as a login shell. This +means that login-specific resource files such as \f(CW\*(C`.profile\*(C'\fR or +\&\f(CW\*(C`.login\*(C'\fR will be read by the shell. If a command is specified, +it is passed to the shell for execution. Otherwise, an interactive +shell is executed. \fBsudo\fR attempts to change to that user's home +directory before running the shell. It also initializes the +environment, leaving \fI\s-1DISPLAY\s0\fR and \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, as well as +the contents of \fI/etc/environment\fR on Linux and \s-1AIX\s0 systems. +All other environment variables are removed. +.IP "\-K" 12 .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 "\-k" 4 +the user's timestamp entirely and may not be used in conjunction +with a command or other option. This option does not require a +password. +.IP "\-k" 12 .IX Item "-k" -The \fB\-k\fR (\fIkill\fR) option to \fBsudo\fR invalidates the user's timestamp -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 "\-L" 4 +When used by itself, the \fB\-k\fR (\fIkill\fR) option to \fBsudo\fR invalidates +the user's timestamp 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. +.Sp +When used in conjunction with a command or an option that may require +a password, the \fB\-k\fR option will cause \fBsudo\fR to ignore the user's +timestamp file. As a result, \fBsudo\fR will prompt for a password +(if one is required by \fIsudoers\fR) and will not update the user's +timestamp file. +.IP "\-L" 12 .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 "\-l" 4 -.IX Item "-l" -The \fB\-l\fR (\fIlist\fR) option will list out the allowed (and -forbidden) commands for the invoking user on the current host. -.IP "\-P" 4 +.IP "\-l[l] [\fIcommand\fR]" 12 +.IX Item "-l[l] [command]" +If no \fIcommand\fR is specified, the \fB\-l\fR (\fIlist\fR) option will list +the allowed (and forbidden) commands for the invoking user (or the +user specified by the \fB\-U\fR option) on the current host. If a +\&\fIcommand\fR is specified and is permitted by \fIsudoers\fR, the +fully-qualified path to the command is displayed along with any +command line arguments. If \fIcommand\fR is specified but not allowed, +\&\fBsudo\fR will exit with a status value of 1. If the \fB\-l\fR option is +specified with an \fBl\fR argument (i.e. \fB\-ll\fR), or if \fB\-l\fR +is specified multiple times, a longer list format is used. +.IP "\-n" 12 +.IX Item "-n" +The \fB\-n\fR (\fInon-interactive\fR) option prevents \fBsudo\fR from prompting +the user for a password. If a password is required for the command +to run, \fBsudo\fR will display an error messages and exit. +.IP "\-P" 12 .IX Item "-P" The \fB\-P\fR (\fIpreserve\fR \fIgroup 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 "\-p" 4 -.IX Item "-p" +.IP "\-p \fIprompt\fR" 12 +.IX Item "-p prompt" The \fB\-p\fR (\fIprompt\fR) option allows you to override the default password prompt and use a custom one. The following percent (`\f(CW\*(C`%\*(C'\fR') escapes are supported: -.RS 4 +.RS 12 .ie n .IP "%H" 4 .el .IP "\f(CW%H\fR" 4 .IX Item "%H" @@ -358,42 +420,63 @@ expanded to the invoking user's login name .IX Item "%%" two consecutive \f(CW\*(C`%\*(C'\fR characters are collapsed into a single \f(CW\*(C`%\*(C'\fR character .RE -.RS 4 +.RS 12 +.Sp +The prompt specified by the \fB\-p\fR option will override the system +password prompt on systems that support \s-1PAM\s0 unless the +\&\fIpassprompt_override\fR flag is disabled in \fIsudoers\fR. .RE -.IP "\-S" 4 +@SEMAN@.IP "\-r \fIrole\fR" 12 +@SEMAN@.IX Item "-r role" +@SEMAN@The \fB\-r\fR (\fIrole\fR) option causes the new (SELinux) security context to +@SEMAN@have the role specified by \fIrole\fR. +.IP "\-S" 12 .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 "\-s" 4 -.IX Item "-s" +the standard input instead of the terminal device. The password must +be followed by a newline character. +.IP "\-s [command]" 12 +.IX Item "-s [command]" 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\|(@mansectform@). -.IP "\-u" 4 -.IX Item "-u" +environment variable if it is set or the shell as specified in +\&\fIpasswd\fR\|(@mansectform@). If a command is specified, it is passed to the shell +for execution. Otherwise, an interactive shell is executed. +@SEMAN@.IP "\-t \fItype\fR" 12 +@SEMAN@.IX Item "-t type" +@SEMAN@The \fB\-t\fR (\fItype\fR) option causes the new (SELinux) security context to +@SEMAN@have the type specified by \fItype\fR. If no type is specified, the default +@SEMAN@type is derived from the specified role. +.IP "\-U \fIuser\fR" 12 +.IX Item "-U user" +The \fB\-U\fR (\fIother user\fR) option is used in conjunction with the \fB\-l\fR +option to specify the user whose privileges should be listed. Only +root or a user with \fBsudo\fR \f(CW\*(C`ALL\*(C'\fR on the current host may use this +option. +.IP "\-u \fIuser\fR" 12 +.IX Item "-u user" 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. When running commands as a \fIuid\fR, +of a \fIuser name\fR, use \fI#uid\fR. When running commands as a \fIuid\fR, many shells require that the '#' be escaped with a backslash ('\e'). Note that if the \fItargetpw\fR Defaults option is set (see \fIsudoers\fR\|(@mansectform@)) it is not possible to run commands with a uid not listed in the password database. -.IP "\-V" 4 +.IP "\-V" 12 .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 "\-v" 4 +.IP "\-v" 12 .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`@timeout@\*(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. +.IP "\-\-" 12 +The \fB\-\-\fR option indicates that \fBsudo\fR should stop processing command +line arguments. It is most useful in conjunction with the \fB\-s\fR option. .PP Environment variables to be set for the command may also be passed on the command line in the form of \fB\s-1VAR\s0\fR=\fIvalue\fR, e.g. @@ -405,8 +488,8 @@ set or the command matched is \f(CW\*(C`ALL\*(C'\fR, the user may set variables that would overwise be forbidden. See \fIsudoers\fR\|(@mansectform@) for more information. .SH "RETURN VALUES" .IX Header "RETURN VALUES" -Upon successful execution of a program, the return value from \fBsudo\fR -will simply be the return value of the program that was executed. +Upon successful execution of a program, the exit status from \fBsudo\fR +will simply be the exit status of the program that was executed. .PP Otherwise, \fBsudo\fR quits with an exit value of 1 if there is a configuration/permission problem or if \fBsudo\fR cannot execute the @@ -496,7 +579,8 @@ information, please see the \f(CW\*(C`PREVENTING SHELL ESCAPES\*(C'\fR section i .ie n .IP "\*(C`EDITOR\*(C'" 16 .el .IP "\f(CW\*(C`EDITOR\*(C'\fR" 16 .IX Item "EDITOR" -Default editor to use in \fB\-e\fR (sudoedit) mode if \f(CW\*(C`VISUAL\*(C'\fR is not set +Default editor to use in \fB\-e\fR (sudoedit) mode if neither \f(CW\*(C`SUDO_EDITOR\*(C'\fR +nor \f(CW\*(C`VISUAL\*(C'\fR is set .ie n .IP "\*(C`HOME\*(C'" 16 .el .IP "\f(CW\*(C`HOME\*(C'\fR" 16 .IX Item "HOME" @@ -510,30 +594,39 @@ Set to a sane value if the \fIsecure_path\fR sudoers option is set. .el .IP "\f(CW\*(C`SHELL\*(C'\fR" 16 .IX Item "SHELL" Used to determine shell to run with \f(CW\*(C`\-s\*(C'\fR option -.ie n .IP "\*(C`SUDO_PROMPT\*(C'" 16 -.el .IP "\f(CW\*(C`SUDO_PROMPT\*(C'\fR" 16 -.IX Item "SUDO_PROMPT" -Used as the default password prompt +.ie n .IP "\*(C`SUDO_ASKPASS\*(C'" 16 +.el .IP "\f(CW\*(C`SUDO_ASKPASS\*(C'\fR" 16 +.IX Item "SUDO_ASKPASS" +Specifies the path to a helper program used to read the password +if no terminal is available or if the \f(CW\*(C`\-A\*(C'\fR option is specified. .ie n .IP "\*(C`SUDO_COMMAND\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_COMMAND\*(C'\fR" 16 .IX Item "SUDO_COMMAND" Set to the command run by sudo -.ie n .IP "\*(C`SUDO_USER\*(C'" 16 -.el .IP "\f(CW\*(C`SUDO_USER\*(C'\fR" 16 -.IX Item "SUDO_USER" -Set to the login of the user who invoked sudo -.ie n .IP "\*(C`SUDO_UID\*(C'" 16 -.el .IP "\f(CW\*(C`SUDO_UID\*(C'\fR" 16 -.IX Item "SUDO_UID" -Set to the uid of the user who invoked sudo +.ie n .IP "\*(C`SUDO_EDITOR\*(C'" 16 +.el .IP "\f(CW\*(C`SUDO_EDITOR\*(C'\fR" 16 +.IX Item "SUDO_EDITOR" +Default editor to use in \fB\-e\fR (sudoedit) mode .ie n .IP "\*(C`SUDO_GID\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_GID\*(C'\fR" 16 .IX Item "SUDO_GID" -Set to the gid of the user who invoked sudo +Set to the group \s-1ID\s0 of the user who invoked sudo +.ie n .IP "\*(C`SUDO_PROMPT\*(C'" 16 +.el .IP "\f(CW\*(C`SUDO_PROMPT\*(C'\fR" 16 +.IX Item "SUDO_PROMPT" +Used as the default password prompt .ie n .IP "\*(C`SUDO_PS1\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_PS1\*(C'\fR" 16 .IX Item "SUDO_PS1" -If set, \f(CW\*(C`PS1\*(C'\fR will be set to its value +If set, \f(CW\*(C`PS1\*(C'\fR will be set to its value for the program being run +.ie n .IP "\*(C`SUDO_UID\*(C'" 16 +.el .IP "\f(CW\*(C`SUDO_UID\*(C'\fR" 16 +.IX Item "SUDO_UID" +Set to the user \s-1ID\s0 of the user who invoked sudo +.ie n .IP "\*(C`SUDO_USER\*(C'" 16 +.el .IP "\f(CW\*(C`SUDO_USER\*(C'\fR" 16 +.IX Item "SUDO_USER" +Set to the login of the user who invoked sudo .ie n .IP "\*(C`USER\*(C'" 16 .el .IP "\f(CW\*(C`USER\*(C'\fR" 16 .IX Item "USER" @@ -541,17 +634,21 @@ Set to the target user (root unless the \fB\-u\fR option is specified) .ie n .IP "\*(C`VISUAL\*(C'" 16 .el .IP "\f(CW\*(C`VISUAL\*(C'\fR" 16 .IX Item "VISUAL" -Default editor to use in \fB\-e\fR (sudoedit) mode +Default editor to use in \fB\-e\fR (sudoedit) mode if \f(CW\*(C`SUDO_EDITOR\*(C'\fR +is not set .SH "FILES" .IX Header "FILES" -.ie n .IP "\fI@sysconfdir@/sudoers\fR\*(C` \*(C'List of who can run what" 4 -.el .IP "\fI@sysconfdir@/sudoers\fR\f(CW\*(C` \*(C'\fRList of who can run what" 4 -.IX Item "@sysconfdir@/sudoers List of who can run what" -.PD 0 -.ie n .IP "\fI@timedir@\fR\*(C` \*(C'Directory containing timestamps" 4 -.el .IP "\fI@timedir@\fR\f(CW\*(C` \*(C'\fRDirectory containing timestamps" 4 -.IX Item "@timedir@ Directory containing timestamps" -.PD +.ie n .IP "\fI@sysconfdir@/sudoers\fR" 24 +.el .IP "\fI@sysconfdir@/sudoers\fR" 24 +.IX Item "@sysconfdir@/sudoers" +List of who can run what +.ie n .IP "\fI@timedir@\fR" 24 +.el .IP "\fI@timedir@\fR" 24 +.IX Item "@timedir@" +Directory containing timestamps +.IP "\fI/etc/environment\fR" 24 +.IX Item "/etc/environment" +Initial environment for \fB\-i\fR mode on Linux and \s-1AIX\s0 .SH "EXAMPLES" .IX Header "EXAMPLES" Note: the following examples assume suitable \fIsudoers\fR\|(@mansectform@) entries. @@ -562,23 +659,35 @@ To get a file listing of an unreadable directory: \& $ 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: +To list the home directory of user yaz on a machine where the +file system holding ~yaz is not exported as root: .PP .Vb 1 -\& $ sudo -u yazza ls ~yazza +\& $ sudo \-u yaz ls ~yaz .Ve .PP To edit the \fIindex.html\fR file as user www: .PP .Vb 1 -\& $ sudo -u www vi ~www/htdocs/index.html +\& $ sudo \-u www vi ~www/htdocs/index.html +.Ve +.PP +To view system logs only accessible to root and users in the adm group: +.PP +.Vb 1 +\& $ sudo \-g adm view /var/log/syslog +.Ve +.PP +To run an editor as jim with a different primary group: +.PP +.Vb 1 +\& $ sudo \-u jim \-g audio vi ~jim/sound.txt .Ve .PP To shutdown a machine: .PP .Vb 1 -\& $ sudo shutdown -r +15 "quick reboot" +\& $ sudo shutdown \-r +15 "quick reboot" .Ve .PP To make a usage listing of the directories in the /home @@ -586,20 +695,20 @@ 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" +\& $ 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), \fIpasswd\fR\|(@mansectform@), -\&\fIsudoers\fR\|(@mansectform@), \fIvisudo\fR\|(@mansectsu@) +\&\fIgrep\fR\|(1), \fIsu\fR\|(1), \fIstat\fR\|(2), +@LCMAN@\&\fIlogin_cap\fR\|(3), +\&\fIpasswd\fR\|(@mansectform@), \fIsudoers\fR\|(5), \fIvisudo\fR\|(@mansectsu@) .SH "AUTHORS" .IX Header "AUTHORS" Many people have worked on \fBsudo\fR over the years; this version consists of code written primarily by: .PP -.Vb 2 +.Vb 1 \& Todd C. Miller -\& Chris Jepeway .Ve .PP See the \s-1HISTORY\s0 file in the \fBsudo\fR distribution or visit