warum wechselt sudo su; su tomcat nicht zum Tomcat-Benutzer?

warum wechselt sudo su; su tomcat nicht zum Tomcat-Benutzer?

In Redhat Linux. Von meinem Benutzer aus, wenn ich den Befehl sudo su ausgebe -> wechselt zu root su tomcat --> wechselt zum Tomcat-Benutzer

Warum funktioniert das Aneinanderreihen der Befehle in einer einzigen Zeile nicht? sudo su; su tomcat --> immer noch im Root-Zugriff. Wechselt nicht zu Tomcat.

Antwort1

Die Befehle

sudo su; su tomcat

sind zwei Befehle. Die Shell führt den ersten aus und nach Abschluss den zweiten. Beachten Sie, dass die Shell den zweiten Befehl nicht als Argument an den ersten Befehl übergibt.

Wenn Sie den ersten Befehl beenden, wird der zweite ausgeführt.

sudo su ; su tomcat
[sudo] password for iain:
root@host:iain]$ exit
exit
Password: <---- this is the prompt from the second su command.

Mit sudo können Sie direkt zum Tomcat-Benutzer wechseln

sudo -u tomcat <some command>

oder verwenden Sie -s, um eine Shell zu erhalten, z. B.

whoami
iain
sudo -s -u tomcat 
whoami
tomcat

Antwort2

Wenn Sie Ihre sudound suBefehle durch ein ;Zeichen trennen su, wird ausgeführt, nachdem sudobeendet wurde. In diesem Fall führen Sie also suals normaler Benutzer aus.

Um das gewünschte Ergebnis zu erzielen, versuchen Sie, das Ganze in einem Befehl auszuführen:

sudo su - tomcat

verwandte Informationen