sudoの実行、ディレクトリの変更、sudoの保持、スクリプト完了後のディレクトリの維持

sudoの実行、ディレクトリの変更、sudoの保持、スクリプト完了後のディレクトリの維持

私はしばしば次のコマンドを入力する自分自身を見つけます。

sudo -i
cd workdir

スクリプトを作成し、名前を文字として指定したいと思います。たとえば、a実行すると、a上記の2つのコマンドを入力したのと同じ効果があります。具体的には、Windowsで「昇格された」プロンプトが表示され、指定されたフォルダにあります。

どうやってこれを達成できますか?

答え1

解決策があると思いますが、これにより複数のプロセスが生成されます。

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

最初のプロセスはスクリプトを実行することによって生成され、2番目のプロセスは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を使用しているため、矢印の付いた最初のコマンドは異なりますuser1user2

関連情報