por que sudo su; su tomcat não muda para usuário tomcat?

por que sudo su; su tomcat não muda para usuário tomcat?

No Red Hat Linux. do meu usuário se eu emitir o comando sudo su -> alterações para root su tomcat -> alterações para o usuário tomcat

Por que seguir os comandos em uma única linha não funciona? sudo su; su tomcat -> ainda na raiz. Não muda para Tomcat

Responder1

Os comandos

sudo su; su tomcat

são dois comandos. O shell executará o primeiro e quando for concluído, executará o segundo. Observe que o shell não passa o segundo comando como argumento para o primeiro comando.

Quando você sai do primeiro comando, ele executará o segundo

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

Você pode usar o sudo para fazer a transição diretamente para o usuário do Tomcat

sudo -u tomcat <some command>

ou use -spara obter um shell, por exemplo

whoami
iain
sudo -s -u tomcat 
whoami
tomcat

Responder2

Quando você divide seus comandos sudoe com um sinal, eles serão executados após a conclusão. Ou seja, nesse caso você executa o como seu usuário normal.su;susudosu

Para alcançar o resultado desejado, tente executar tudo em um comando:

sudo su - tomcat

informação relacionada