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 -s
para obter um shell, por exemplo
whoami
iain
sudo -s -u tomcat
whoami
tomcat
Responder2
Quando você divide seus comandos sudo
e 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
;
su
sudo
su
Para alcançar o resultado desejado, tente executar tudo em um comando:
sudo su - tomcat