왜 sudo su를 하는가? su tomcat이 tomcat 사용자로 전환되지 않습니까?

왜 sudo su를 하는가? su tomcat이 tomcat 사용자로 전환되지 않습니까?

레드햇 리눅스에서. 명령을 실행하면 내 사용자로부터 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

sudosu명령을 기호로 나누면 ;해당 명령이 완료된 su후에 실행됩니다 . sudo즉, 이 경우 su일반 사용자로 실행합니다.

원하는 결과를 얻으려면 하나의 명령으로 전체를 실행해 보십시오.

sudo su - tomcat

관련 정보