В Redhat linux. от моего пользователя, если я введу команду sudo su -> изменения на root su tomcat -> изменения на пользователя tomcat
Почему объединение команд в одну строку не работает? sudo su; su tomcat -> все еще в корне. Не переключается на кота
Команды
sudo su; su tomcat
это две команды. Оболочка запустит первую, а когда завершится, запустит вторую. Обратите внимание, что оболочка не передает вторую команду в качестве аргумента первой команде.
Когда вы выйдете из первой команды, она запустит вторую
sudo su ; su tomcat
[sudo] password for iain:
root@host:iain]$ exit
exit
Password: <---- this is the prompt from the second su command.
Вы можете использовать sudo для прямого перехода к пользователю tomcat
sudo -u tomcat <some command>
или используйте -s
чтобы получить оболочку, например
whoami
iain
sudo -s -u tomcat
whoami
tomcat
Когда вы делите свой sudo
и su
команды с ;
подписать su
будет выполнено после sudo
закончил. Т.е. в этом случае вы выполняете su
как ваш обычный пользователь.
Для достижения желаемого результата попробуйте выполнить все за одну команду:
sudo su - tomcat