Linux系统中用户切换的命令为su,语法为:
su [-fmp] [-c command] [-s shell] [–help] [–version] [-] [USER [ARG]]
参数说明
-f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。
-l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并
且工作目录也会改变。如果没有指定USER,缺省情况是root。
-m, -p ,–preserve-environment:执行su时不改变环境变数。
-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。
–help 显示说明文件
–version 显示版本资讯USER:欲变更的使用者账号,
ARG: 传入新的Shell参数。su [user] 和 su - [user]的区别:
su [user]切换到其他用户,但是不切换环境变量,su - [user]则是完整的切换到新的用户环境。
如:
[root@rac1 ~]# pwd –当前目录
/root
[root@rac1 ~]# su oracle –使用su [user]
[oracle@rac1 root] pwd–当前目录没有改变,还是之前的用户目录/root[oracle@rac1root] p w d – 当 前 目 录 没 有 改 变 , 还 是 之 前 的 用 户 目 录 / r o o t [ o r a c l e @ r a c 1 r o o t ] su - oracle –使用su - [user]
Password:
[oracle@rac1 ~] pwd–当前目录变为当前用户的家目录/home/oracle[oracle@rac1 ] p w d – 当 前 目 录 变 为 当 前 用 户 的 家 目 录 / h o m e / o r a c l e [ o r a c l e @ r a c 1 ]
所以建议大家在切换用户时,尽量用su - [user],否则可能会出现环境变量不对的问题。