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
で区切ると、が終了した後に が実行されます。つまり、その場合は通常のユーザーとして を実行します。;
su
sudo
su
希望する結果を得るには、全体を 1 つのコマンドで実行してみてください。
sudo su - tomcat