'\" t .\" Title: su .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 2020-01-23 .\" Manual: 用户命令 .\" Source: shadow-utils 4.8.1 .\" Language: Chinese Simplified .\" .TH "SU" "1" "2020-01-23" "shadow\-utils 4\&.8\&.1" "用户命令" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "名称" su \- 更改用户 ID 或成为超级用户 .SH "大纲" .HP \w'\fBsu\fR\ 'u \fBsu\fR [\fI选项\fR] [\fI\-\fR] [\fI用户名\fR\ [\ \fIargs\fR\ ]] .SH "描述" .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 \fB\-\fR option may be used to provide an environment similar to what the user would expect had the user logged in directly\&. The \fB\-c\fR option may be used to treat the next argument as a command by most shells\&. .PP Options are recognized everywhere in the argument list\&. You can use the \fB\-\-\fR argument to stop option parsing\&. The \fB\-\fR option is special: it is also recognized after \fB\-\-\fR, but has to be placed before \fBusername\fR\&. .PP 如果合适,将提示用户输入一个密码。输入无效的密码会产生一个错误消息。所有的尝试,无论成功还是失败,都会被记录,以检测对系统的滥用。 .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 在登录 shell 中以第一个字符是\(lq*\(rq标注的是子系统登录。给定的主目录将被用于用户实际登录的新文件系统的根。 .SH "选项" .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 interactive programs which need a controlling TTY\&. .RE .PP \fB\-\fR, \fB\-l\fR, \fB\-\-login\fR .RS 4 提供一个类似于用户直接登录的环境,用户可能会希望这样。 .sp When \fB\-\fR is used, it must be specified before any \fBusername\fR\&. For portability it is recommended to use it as last option, before any \fBusername\fR\&. 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 将使用的 shell。 .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 "配置文件" .PP The following configuration variables in /etc/login\&.defs change the behavior of this tool: .PP \fBCONSOLE\fR (string) .RS 4 如果定义了,或者是包含设备名(没行一个)的文件的完整路径名,或者是\(lq:\(rq分隔的设备名列表。将只会在这写设备上允许 root 登录。 .sp 如果没有定义,可以在任何设备上使用 root。 .sp 指定的设备时不带 /dev/ 前缀。 .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 如果不能 cd 到主目录时,说明是否允许登录。默认是否。 .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 如果此文件存在,并且可读,将会从中读取登录环境。所有行都必须是 name=value 的格式。 .sp 以 # 开头的行将视为注释,并被忽略。 .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 此字符串用于提示输入密码。默认是 "Password: ",或者翻译了的结果(汉语中翻译为了\(lq密码:\(rq)。如果设置了此变量,提示不会被翻译。 .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 启用登录时检查和现实邮箱状态。 .sp 如果 shell 的启动文件已经检查了邮件("mailx \-e" 或者其它同功能的工具),您应该禁用它。 .RE .PP \fBMAIL_DIR\fR (string) .RS 4 邮箱目录。修改或删除用户账户时需要处理邮箱,如果没有指定,将使用编译时指定的默认值。 .RE .PP \fBMAIL_FILE\fR (string) .RS 4 定义用户邮箱文件的位置(相对于主目录)。 .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 如果定义了,所有的 su 活动都会记录到此文件。 .RE .PP \fBSU_NAME\fR (string) .RS 4 如果定义了,就是运行\(lqsu \-\(rq时显示的命令名称。例如,如果定义为\(lqsu\(rq,那么\(lqps\(rq会显示此命令为\(lq\-su\(rq。如果没有定义,\(lqps\(rq将会显示实际执行的 shell,例如类似于\(lq\-sh\(rq。 .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 如果 uid 和 gid 相同,用户名和主用户名也相同,使非 root 组的组掩码位和属主位相同 (如:022 \-> 002, 077 \-> 007)。 .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 "文件" .PP /etc/passwd .RS 4 用户账户信息。 .RE .PP /etc/shadow .RS 4 安全用户账户信息。 .RE .PP /etc/login\&.defs .RS 4 Shadow 密码套件配置。 .RE .SH "退出值" .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 "参见" .PP \fBlogin\fR(1), \fBlogin.defs\fR(5), \fBsg\fR(1), \fBsh\fR(1)\&.