다른 사용자로 sudo를 사용하여 CD를 실행하는 중에 문제가 발생했습니다.

다른 사용자로 sudo를 사용하여 CD를 실행하는 중에 문제가 발생했습니다.

다른 사용자를 대신하여 셸에서 명령을 실행하고 싶습니다. 명령은 다음과 같습니다.

sudo -u USER cd /home/USER

알겠어요

sudo: cd: command not found

sudo에 전달된 명령의 올바른 구문은 무엇입니까?

답변1

cd내장 케이스. 쉘 내장 명령을 실행하려면 쉘을 호출해야 합니다.

sudo -u USER sh -c 'cd /home/USER'

또는

sudo -u USER bash -c 'cd /home/USER'

답변2

cd외부 명령이 아니라 단지 쉘 내장이므로 sudo실행할 방법이 없습니다. cd쉘 내장형으로만 존재하는 이유는 한 프로세스가 다른 프로세스의 현재 디렉터리에 영향을 미칠 수 없기 때문입니다. 따라서 현재 디렉터리를 변경하고 즉시 종료하는 프로그램은 쓸모가 없습니다. (거의 쓸모가 없습니다. cd프로그램은 성공 여부를 나타내는 상태를 반환합니다.)

디렉터리로 변경한 다음 다른 사용자로 명령을 실행하려면 해당 모든 작업을 수행하는 셸을 실행하세요.

sudo -u SOMEUSER sh -c 'cd /path/to/directory && dosomething'

답변3

나는 다음을 사용하는 경향이 있습니다. sudo su - USERNAME그런 다음 해당 사용자가 요청한 것을 수행합니다. 종료하려면 다음을 입력하세요.exit

관련 정보