¿Por qué sudo su; ¿Su Tomcat no cambia al usuario de Tomcat?

¿Por qué sudo su; ¿Su Tomcat no cambia al usuario de Tomcat?

En Red Hat Linux. de mi usuario si emito el comando sudo su -> cambios en root su tomcat --> cambios en el usuario de tomcat

¿Por qué no funciona seguir los comandos en una sola línea? sudo su; su tomcat --> todavía en raíz. No cambia a Tomcat

Respuesta1

los comandos

sudo su; su tomcat

Son dos comandos. El shell ejecutará el primero y cuando se complete ejecutará el segundo. Tenga en cuenta que el shell no pasa el segundo comando como argumento del primer comando.

Cuando salga del primer comando, ejecutará el segundo.

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

Puede usar sudo para realizar la transición al usuario de Tomcat directamente

sudo -u tomcat <some command>

o utilizar -spara obtener un caparazón, por ejemplo

whoami
iain
sudo -s -u tomcat 
whoami
tomcat

Respuesta2

Cuando divides tus comandos sudoy sucon un ;signo, suse ejecutarán después de que sudohaya terminado. Es decir, en ese caso ejecuta sucomo su usuario normal.

Para lograr el resultado deseado, intente ejecutar todo en un solo comando:

sudo su - tomcat

información relacionada