sudo su를 실행하고 나중에 디렉토리를 어떻게 변경할 수 있나요?

sudo su를 실행하고 나중에 디렉토리를 어떻게 변경할 수 있나요?

다음을 수행하기 위해 별칭을 만들고 싶습니다.

alias userYYY='sudo su userYYY; cd /a/path/that/only/userYYY/has/access'

그런 다음 명령줄에서 sudo 사용자를 사용하여 로그인하고 쉘 userYYY이 이제 .userYYYpwd/a/path/that/only/userYYY/has/access

어떻게 해야 하나요? 이는 userYYY일부 프로세스를 실행하는 것이며 그 홈에 무언가가 있어야 합니다. 그래서 다음을 사용하여 $HOME을 변경해 보았습니다.

sudo usermod -m -d /a/path/that/only/userYYY/has/access userYYY 

그런 다음 쉘과 sudoer 파일에서 수행했습니다 sudo su userYYY. 그러나 그것은 작동하지 않았습니다. 제대로 작동한 유일한 방법은 원래 쉘 내에서 sudo su -l userYYYY새 bash( )를 여는 것뿐이었습니다.-bash-4.1$ ....

요약하자면, 내가 원하는 것은 쉘에 두 줄을 작성하지 않는 것입니다.

sudo su userYYY
cd /a/path/that/only/userYYY/has/access

어떤 아이디어가 있나요?

답변1

alias userYYY='sudo su userYYY -c "cd /a/path/that/only/userYYY/has/access; /bin/bash"'

답변2

한 가지 옵션은 ~/.bashrc대상 사용자를 편집하여 cd추가하는 것입니다.

cd /a/path/that/only/userYYY/has/access

답변3

이것이 원래 질문과 약간 다르다는 것을 알고 있지만 정책에 의해 금지된 경우 비밀번호를 입력하지 않고 다른 사용자로 명령을 실행하는 것이 아이디어입니다 sudo su <user> -c.

sudo -u userYYY -- sh -c "cd /a/path/that/only/userYYY/has/access; /bin/bash"

답변4

나에게는 다음을 결합 sudo하고 screen해결하는 것입니다.

sudo -iu vagrant screen -mS npm_install bash -c 'cd /vagrant && npm install'

이 명령은 먼저 vagrant사용자로 전환됩니다. 그런 다음 vagrant디렉토리를 다음으로 변경 /vagrant하고 실행합니다 npm install.

관련 정보