다음을 수행하기 위해 별칭을 만들고 싶습니다.
alias userYYY='sudo su userYYY; cd /a/path/that/only/userYYY/has/access'
그런 다음 명령줄에서 sudo 사용자를 사용하여 로그인하고 쉘 userYYY
이 이제 .userYYY
pwd
/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
.