su命令
su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
语法
su (选项) (参数)
选项
-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s或--shell=:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息。
参数
用户:指定要切换身份的目标用户。
实例
变更帐号为root并在执行ls指令后退出变回原使用者:
su -c ls root
变更帐号为root并传入-f选项给新执行的shell:
su root -f
变更帐号为test并改变工作目录至test的家目录:
su - test
总结:
su user1 不加参数“-”还是root的环境变量
su - user1 加参数“-”也切换为user1的环境变量
su - 从普通用户切换到root时,需要输入root密码
有时候只需要用普通用户的身份执行一条命令,可以这样
su - -C "id" user1 需要知道user1的id
su - -C "echo $PATH" user2 需要知道user2的环境变量PATH
su - -C "ehco $PWD" user3 需要知道user3的环境变量PWD
su - -C "mkdir /tmp/newdir" user4 需要在user4的/tmp目录下新建一个目录
su - -C "ls -ld /tmp/" user5 需要查看user5的/tmp/目录本身的信息
转载于:https://blog.51cto.com/rachy/1883730