在 Redhat linux 中,如果我从我的用户发出命令 sudo su -> 更改为 root su tomcat --> 更改为 tomcat 用户
为什么在单行中添加命令不起作用? sudo su; su tomcat --> 仍然处于 root 状态。不会切换到 tomcat
答案1
命令
sudo su; su tomcat
是两个命令。shell 将运行第一个命令,完成后再运行第二个命令。请注意,shell 不会将第二个命令作为参数传递给第一个命令。
当你退出第一个命令时,它将运行第二个命令
sudo su ; su tomcat
[sudo] password for iain:
root@host:iain]$ exit
exit
Password: <---- this is the prompt from the second su command.
您可以使用 sudo 直接转换到 tomcat 用户
sudo -u tomcat <some command>
或者使用-s
来获取 shell 例如
whoami
iain
sudo -s -u tomcat
whoami
tomcat
答案2
当您用符号分隔sudo
和su
命令时, 将在 完成后执行。也就是说,在这种情况下,您可以以普通用户的身份执行 。;
su
sudo
su
为了达到您想要的结果,请尝试在一个命令中执行整个操作:
sudo su - tomcat