'\" t .\" Title: su .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.75.2 .\" Date: 02/12/2012 .\" Manual: User Commands .\" Source: shadow-utils 4.1.5 .\" Language: English .\" .TH "SU" "1" "02/12/2012" "shadow\-utils 4\&.1\&.5" "User Commands" .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" su \- change user ID or become superuser .SH "SYNOPSIS" .HP \w'\fBsu\fR\ 'u \fBsu\fR [\fIoptions\fR] [\fIusername\fR] .SH "DESCRIPTION" .PP The \fBsu\fR command is used to become another user during a login session\&. Invoked without a \fBusername\fR, \fBsu\fR defaults to becoming the superuser\&. The optional argument \fB\-\fR may be used to provide an environment similar to what the user would expect had the user logged in directly\&. .PP Additional arguments may be provided after the username, in which case they are supplied to the user\*(Aqs login shell\&. In particular, an argument of \fB\-c\fR will cause the next argument to be treated as a command by most command interpreters\&. The command will be executed by the shell specified in /etc/passwd for the target user\&. .PP You can use the \fB\-\-\fR argument to separate \fBsu\fR options from the arguments supplied to the shell\&. .PP The user will be prompted for a password, if appropriate\&. Invalid passwords will produce an error message\&. All attempts, both valid and invalid, are logged to detect abuse of the system\&. .PP The current environment is passed to the new shell\&. The value of \fB$PATH\fR is reset to /bin:/usr/bin for normal users, or /sbin:/bin:/usr/sbin:/usr/bin for the superuser\&. This may be changed with the \fBENV_PATH\fR and \fBENV_SUPATH\fR definitions in /etc/login\&.defs\&. .PP A subsystem login is indicated by the presence of a "*" as the first character of the login shell\&. The given home directory will be used as the root of a new file system which the user is actually logged into\&. .SH "OPTIONS" .PP The options which apply to the \fBsu\fR command are: .PP \fB\-c\fR, \fB\-\-command\fR \fICOMMAND\fR .RS 4 Specify a command that will be invoked by the shell using its \fB\-c\fR\&. .sp The executed command will have no controlling terminal\&. This option cannot be used to execute interractive programs which need a controlling TTY\&. .RE .PP \fB\-\fR, \fB\-l\fR, \fB\-\-login\fR .RS 4 Provide an environment similar to what the user would expect had the user logged in directly\&. .sp When \fB\-\fR is used, it must be specified as the last \fBsu\fR option\&. The other forms (\fB\-l\fR and \fB\-\-login\fR) do not have this restriction\&. .RE .PP \fB\-s\fR, \fB\-\-shell\fR \fISHELL\fR .RS 4 The shell that will be invoked\&. .sp The invoked shell is chosen from (highest priority first): .PP .RS 4 The shell specified with \-\-shell\&. .RE .PP .RS 4 If \fB\-\-preserve\-environment\fR is used, the shell specified by the \fB$SHELL\fR environment variable\&. .RE .PP .RS 4 The shell indicated in the /etc/passwd entry for the target user\&. .RE .PP .RS 4 /bin/sh if a shell could not be found by any above method\&. .RE .sp If the target user has a restricted shell (i\&.e\&. the shell field of this user\*(Aqs entry in /etc/passwd is not listed in /etc/shells), then the \fB\-\-shell\fR option or the \fB$SHELL\fR environment variable won\*(Aqt be taken into account, unless \fBsu\fR is called by root\&. .RE .PP \fB\-m\fR, \fB\-p\fR, \fB\-\-preserve\-environment\fR .RS 4 Preserve the current environment, except for: .PP \fB$PATH\fR .RS 4 reset according to the /etc/login\&.defs options \fBENV_PATH\fR or \fBENV_SUPATH\fR (see below); .RE .PP \fB$IFS\fR .RS 4 reset to \(lq\(rq, if it was set\&. .RE .sp If the target user has a restricted shell, this option has no effect (unless \fBsu\fR is called by root)\&. .sp Note that the default behavior for the environment is the following: .PP .RS 4 The \fB$HOME\fR, \fB$SHELL\fR, \fB$USER\fR, \fB$LOGNAME\fR, \fB$PATH\fR, and \fB$IFS\fR environment variables are reset\&. .RE .PP .RS 4 If \fB\-\-login\fR is not used, the environment is copied, except for the variables above\&. .RE .PP .RS 4 If \fB\-\-login\fR is used, the \fB$TERM\fR, \fB$COLORTERM\fR, \fB$DISPLAY\fR, and \fB$XAUTHORITY\fR environment variables are copied if they were set\&. .RE .PP .RS 4 If \fB\-\-login\fR is used, the \fB$TZ\fR, \fB$HZ\fR, and \fB$MAIL\fR environment variables are set according to the /etc/login\&.defs options \fBENV_TZ\fR, \fBENV_HZ\fR, \fBMAIL_DIR\fR, and \fBMAIL_FILE\fR (see below)\&. .RE .PP .RS 4 If \fB\-\-login\fR is used, other environment variables might be set by the \fBENVIRON_FILE\fR file (see below)\&. .RE .sp .RE .SH "CAVEATS" .PP This version of \fBsu\fR has many compilation options, only some of which may be in use at any particular site\&. .SH "CONFIGURATION" .PP The following configuration variables in /etc/login\&.defs change the behavior of this tool: .PP \fBCONSOLE\fR (string) .RS 4 If defined, either full pathname of a file containing device names (one per line) or a ":" delimited list of device names\&. Root logins will be allowed only upon these devices\&. .sp If not defined, root will be allowed on any device\&. .sp The device should be specified without the /dev/ prefix\&. .RE .PP \fBCONSOLE_GROUPS\fR (string) .RS 4 List of groups to add to the user\*(Aqs supplementary groups set when logging in on the console (as determined by the CONSOLE setting)\&. Default is none\&. Use with caution \- it is possible for users to gain permanent access to these groups, even when not logged in on the console\&. .RE .PP \fBDEFAULT_HOME\fR (boolean) .RS 4 Indicate if login is allowed if we can\*(Aqt cd to the home directory\&. Default is no\&. .sp If set to \fIyes\fR, the user will login in the root (/) directory if it is not possible to cd to her home directory\&. .RE .PP \fBENV_HZ\fR (string) .RS 4 If set, it will be used to define the HZ environment variable when a user login\&. The value must be preceded by \fIHZ=\fR\&. A common value on Linux is \fIHZ=100\fR\&. .RE .PP \fBENVIRON_FILE\fR (string) .RS 4 If this file exists and is readable, login environment will be read from it\&. Every line should be in the form name=value\&. .sp Lines starting with a # are treated as comment lines and ignored\&. .RE .PP \fBENV_PATH\fR (string) .RS 4 If set, it will be used to define the PATH environment variable when a regular user login\&. The value is a colon separated list of paths (for example \fI/bin:/usr/bin\fR) and can be preceded by \fIPATH=\fR\&. The default value is \fIPATH=/bin:/usr/bin\fR\&. .RE .PP \fBENV_SUPATH\fR (string) .RS 4 If set, it will be used to define the PATH environment variable when the superuser login\&. The value is a colon separated list of paths (for example \fI/sbin:/bin:/usr/sbin:/usr/bin\fR) and can be preceded by \fIPATH=\fR\&. The default value is \fIPATH=/sbin:/bin:/usr/sbin:/usr/bin\fR\&. .RE .PP \fBENV_TZ\fR (string) .RS 4 If set, it will be used to define the TZ environment variable when a user login\&. The value can be the name of a timezone preceded by \fITZ=\fR (for example \fITZ=CST6CDT\fR), or the full path to the file containing the timezone specification (for example /etc/tzname)\&. .sp If a full path is specified but the file does not exist or cannot be read, the default is to use \fITZ=CST6CDT\fR\&. .RE .PP \fBLOGIN_STRING\fR (string) .RS 4 The string used for prompting a password\&. The default is to use "Password: ", or a translation of that string\&. If you set this variable, the prompt will not be translated\&. .sp If the string contains \fI%s\fR, this will be replaced by the user\*(Aqs name\&. .RE .PP \fBMAIL_CHECK_ENAB\fR (boolean) .RS 4 Enable checking and display of mailbox status upon login\&. .sp You should disable it if the shell startup files already check for mail ("mailx \-e" or equivalent)\&. .RE .PP \fBMAIL_DIR\fR (string) .RS 4 The mail spool directory\&. This is needed to manipulate the mailbox when its corresponding user account is modified or deleted\&. If not specified, a compile\-time default is used\&. .RE .PP \fBMAIL_FILE\fR (string) .RS 4 Defines the location of the users mail spool files relatively to their home directory\&. .RE .PP The \fBMAIL_DIR\fR and \fBMAIL_FILE\fR variables are used by \fBuseradd\fR, \fBusermod\fR, and \fBuserdel\fR to create, move, or delete the user\*(Aqs mail spool\&. .PP If \fBMAIL_CHECK_ENAB\fR is set to \fIyes\fR, they are also used to define the \fBMAIL\fR environment variable\&. .PP \fBQUOTAS_ENAB\fR (boolean) .RS 4 Enable setting of resource limits from /etc/limits and ulimit, umask, and niceness from the user\*(Aqs passwd gecos field\&. .RE .PP \fBSULOG_FILE\fR (string) .RS 4 If defined, all su activity is logged to this file\&. .RE .PP \fBSU_NAME\fR (string) .RS 4 If defined, the command name to display when running "su \-"\&. For example, if this is defined as "su" then a "ps" will display the command is "\-su"\&. If not defined, then "ps" would display the name of the shell actually being run, e\&.g\&. something like "\-sh"\&. .RE .PP \fBSU_WHEEL_ONLY\fR (boolean) .RS 4 If \fIyes\fR, the user must be listed as a member of the first gid 0 group in /etc/group (called \fIroot\fR on most Linux systems) to be able to \fBsu\fR to uid 0 accounts\&. If the group doesn\*(Aqt exist or is empty, no one will be able to \fBsu\fR to uid 0\&. .RE .PP \fBSYSLOG_SU_ENAB\fR (boolean) .RS 4 Enable "syslog" logging of \fBsu\fR activity \- in addition to sulog file logging\&. .RE .PP \fBUSERGROUPS_ENAB\fR (boolean) .RS 4 Enable setting of the umask group bits to be the same as owner bits (examples: 022 \-> 002, 077 \-> 007) for non\-root users, if the uid is the same as gid, and username is the same as the primary group name\&. .sp If set to \fIyes\fR, \fBuserdel\fR will remove the user\*(Aqs group if it contains no more members, and \fBuseradd\fR will create by default a group with the name of the user\&. .RE .SH "FILES" .PP /etc/passwd .RS 4 User account information\&. .RE .PP /etc/shadow .RS 4 Secure user account information\&. .RE .PP /etc/login\&.defs .RS 4 Shadow password suite configuration\&. .RE .SH "EXIT VALUES" .PP On success, \fBsu\fR returns the exit value of the command it executed\&. .PP If this command was terminated by a signal, \fBsu\fR returns the number of this signal plus 128\&. .PP If su has to kill the command (because it was asked to terminate, and the command did not terminate in time), \fBsu\fR returns 255\&. .PP Some exit values from \fBsu\fR are independent from the executed command: .PP \fI0\fR .RS 4 success (\fB\-\-help\fR only) .RE .PP \fI1\fR .RS 4 System or authentication failure .RE .PP \fI126\fR .RS 4 The requested command was not found .RE .PP \fI127\fR .RS 4 The requested command could not be executed .RE .SH "SEE ALSO" .PP \fBlogin\fR(1), \fBlogin.defs\fR(5), \fBsg\fR(1), \fBsh\fR(1)\&.