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 sudo
und su
Befehle durch ein ;
Zeichen trennen su
, wird ausgeführt, nachdem sudo
beendet wurde. In diesem Fall führen Sie also su
als normaler Benutzer aus.
Um das gewünschte Ergebnis zu erzielen, versuchen Sie, das Ganze in einem Befehl auszuführen:
sudo su - tomcat