sudo su; su tomcat が tomcat ユーザーに切り替わらないのはなぜですか?

sudo su; su tomcat が tomcat ユーザーに切り替わらないのはなぜですか?

Redhat Linux では、ユーザーからコマンド sudo su を発行すると、root に変更され、su tomcat を発行すると、tomcat ユーザーに変更されます。

なぜコマンドを 1 行で追跡できないのでしょうか? sudo su; su tomcat --> ルートのままです。Tomcat に切り替わりません

答え1

コマンド

sudo su; su tomcat

2 つのコマンドがあります。シェルは最初のコマンドを実行し、完了すると 2 番目のコマンドを実行します。シェルは 2 番目のコマンドを最初のコマンドの引数として渡さないことに注意してください。

最初のコマンドを終了すると、2番目のコマンドが実行されます

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

sudoコマンドと を記号suで区切ると、が終了した後に が実行されます。つまり、その場合は通常のユーザーとして を実行します。;susudosu

希望する結果を得るには、全体を 1 つのコマンドで実行してみてください。

sudo su - tomcat

関連情報