레드햇 리눅스에서. 명령을 실행하면 내 사용자로부터 sudo su -> 루트 su tomcat으로 변경 -> tomcat 사용자로 변경
한 줄로 명령을 추적하는 것이 작동하지 않는 이유는 무엇입니까? sudo su; su tomcat --> 루트에 여전히 있습니다. Tomcat으로 전환되지 않습니다
답변1
명령
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
답변2
sudo
및 su
명령을 기호로 나누면 ;
해당 명령이 완료된 su
후에 실행됩니다 . sudo
즉, 이 경우 su
일반 사용자로 실행합니다.
원하는 결과를 얻으려면 하나의 명령으로 전체를 실행해 보십시오.
sudo su - tomcat