su命令详解

变更用户身份

语法

su [-fmp] [-c command] [-s shell] [–help] [–version] [-] [USER [ARG]]

功能介绍

su 可让用户展示变更登录的身份。变更时需输入所要变更的用户用户账号与密码(若原来为 root,则不需要输入密码)

例如 su 改变身份后,默认并不会改变工作目录,但会改变 HOME、SHELL、USER、LOGNAME 等环境变量(若是新的身份为 root,则不会变更 USER 与 LOGNAME 变量)。

参数

-f 或 –fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh

-m -p 或 –preserve-environment 执行 su 时不改变环境变数

-c command 或 –command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者

-s shell 或 –shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell

–help 显示说明文件

–version 显示版本资讯

  • -l 或 –login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root

USER 欲变更的使用者帐号

ARG 传入新的 shell 参数

例子

su -c ls root 变更帐号为 root 并在执行 ls 指令后退出变回原使用者。

su root -f 变更帐号为 root 并传入 -f 参数给新执行的 shell。

su - clsung 变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)。