为什么 sudo su; su tomcat 不会切换到 tomcat 用户?

为什么 sudo su; su tomcat 不会切换到 tomcat 用户?

在 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

当您用符号分隔sudosu命令时, 将在 完成后执行。也就是说,在这种情况下,您可以以普通用户的身份执行 。;susudosu

为了达到您想要的结果,请尝试在一个命令中执行整个操作:

sudo su - tomcat

相关内容