sudo 실행, 디렉터리 변경, sudo 유지, 스크립트 완료 후 디렉터리 유지

sudo 실행, 디렉터리 변경, sudo 유지, 스크립트 완료 후 디렉터리 유지

나는 종종 다음 명령을 입력하는 자신을 발견합니다.

sudo -i
cd workdir

스크립트를 만들고 이름을 문자로 지정하고 싶습니다. 예를 들어 a실행하면 a위의 두 명령을 입력한 것과 효과가 동일합니다. 구체적으로는 Windows에서 "상승된" 프롬프트가 표시되고 지정된 폴더에 있습니다.

어떻게 이를 달성할 수 있나요?

답변1

해결책이 있다고 생각하지만 이로 인해 여러 프로세스가 생성됩니다.

#!/bin/bash    
sudo -i bash -c 'cd /path/to/your/workdir && exec bash'

첫 번째 프로세스는 스크립트를 실행하여 생성되고, 두 번째 프로세스는 bash를 실행하는 데 사용되며 sudo -i(이에 대해서는 잘 모르겠습니다), exec bash높은 권한으로 원하는 작업 디렉터리를 제공하는 별도의 프로세스가 생성됩니다.

마지막 grep bash 프로세스를 제외한 모든 프로세스는 이 스크립트를 사용하여 생성됩니다. 너무 많은 프로세스를 갖고 싶다면 이 솔루션을 사용할 수 있습니다.

➜  ~ ./test.sh
[sudo] password for user1: 
root@mycomputer:/home/user2# ps -aux | grep bash
user1   12875  0.0  0.0   9972  3584 pts/0    S+   18:05   0:00 /bin/bash ./test.sh
root       12876  0.0  0.0  14348  6272 pts/0    S+   18:05   0:00 sudo -i bash -c cd /home/user2 && exec bash
root       12877  0.0  0.0  14348  2380 pts/1    Ss   18:05   0:00 sudo -i bash -c cd /home/user2 && exec bash
root       12878  0.0  0.0  10236  4224 pts/1    S    18:05   0:00 bash
root       12892  0.0  0.0   9080  2560 pts/1    S+   18:05   0:00 grep --color=auto bash
root@mycomputer:/home/user2# 

여기서는 zsh를 사용하고 있으므로 화살표가 있는 첫 번째 명령이 다릅니다 user1.user2

관련 정보