다른 사용자로 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

관련 정보