Назад | Перейти на главную страницу

почему sudo su; su tomcat не переключается на пользователя tomcat?

В 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