以 PDF 格式下载本书 (9905 KB)
su(1M)Name | Synopsis | Description | Security | Examples | Environment Variables | Files | Attributes | See Also Name
Synopsissu [-] [username [arg...]] Description
The su command allows one to become another user without logging off or to assume a role. The default user name is root (superuser). To use su, the appropriate password must be supplied (unless the invoker is already root). If the password is correct, su creates a new shell process that has the real and effective user ID, group IDs, and supplementary group list set to those of the specified username. Additionally, the new shell's project ID is set to the default project ID of the specified user. See getprojent(3PROJECT), setproject(3PROJECT). The new shell will be the shell specified in the shell field of username's password file entry (see passwd(4)). If no shell is specified, /usr/bin/sh is used (see sh(1)). If superuser privilege is requested and the shell for the superuser cannot be invoked using exec(2), /sbin/sh is used as a fallback. To return to normal user ID privileges, type an EOF character (CTRL-D) to exit the new shell. Any additional arguments given on the command line are passed to the new shell. When using programs such as sh, an arg of the form -c string executes string using the shell and an arg of -r gives the user a restricted shell. To create a login environment, the command “su –” does the following: If the first argument to su is a dash (-), the environment will be changed to what would be expected if the user actually logged in as the specified user. Otherwise, the environment is passed along, with the exception of $PATH, which is controlled by PATH and SUPATH in /etc/default/su. All attempts to become another user using su are logged in the log file /var/adm/sulog (see sulog(4)). Securitysu uses pam(3PAM) with the service name su for authentication, account management, and credential establishment. ExamplesExample 1 Becoming User bin While Retaining Your Previously Exported EnvironmentTo become user bin while retaining your previously exported environment, execute:
Example 2 Becoming User bin and Changing to bin's Login EnvironmentTo become user bin but change the environment to what would be expected if bin had originally logged in, execute:
Example 3 Executing command with user bin's Environment and PermissionsTo execute command with the temporary environment and permissions of user bin, type:
Environment Variables
Variables with LD_ prefix are removed for security reasons. Thus, su bin will not retain previously exported variables with LD_ prefix while becoming user bin. If any of the LC_* variables ( LC_CTYPE, LC_MESSAGES, LC_TIME, LC_COLLATE, LC_NUMERIC, and LC_MONETARY) (see environ(5)) are not set in the environment, the operational behavior of su for each corresponding locale category is determined by the value of the LANG environment variable. If LC_ALL is set, its contents are used to override both the LANG and the other LC_* variables. If none of the above variables are set in the environment, the "C" (U.S. style) locale determines how su behaves. Files
AttributesSee attributes(5) for descriptions of the following attributes:
See Alsocsh(1), env(1), ksh(1), login(1), roles(1), sh(1), syslogd(1M), exec(2), getprojent(3PROJECT), setproject(3PROJECT), pam(3PAM), pam_authenticate(3PAM), pam_acct_mgmt(3PAM), pam_setcred(3PAM), pam.conf(4), passwd(4), profile(4), sulog(4), syslog(3C), attributes(5), environ(5) Name | Synopsis | Description | Security | Examples | Environment Variables | Files | Attributes | See Also |
||||||||