為什麼 sudo su; su tomcat 沒有切換到tomcat用戶?

為什麼 sudo su; su tomcat 沒有切換到tomcat用戶?

在紅帽linux下。如果我發出命令 sudo su -> 更改為 root su tomcat --> 更改為 tomcat 用戶,則來自我的用戶

為什麼在單行中新增命令不起作用?須藤蘇; 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取得外殼,例如

whoami
iain
sudo -s -u tomcat 
whoami
tomcat

答案2

當您用符號分隔您的sudosu命令時,將在完成後執行。即在這種情況下,您以普通使用者身分執行。;susudosu

為了達到您想要的結果,請嘗試用一個命令執行整個過程:

sudo su - tomcat

相關內容