0

bash スクリプトの実行中に、root ユーザーに切り替えてコマンドを処理し、root モードを終了する方法はありますか? たとえば、bash スクリプトの途中に次のコマンドを含めたいと思います。

sudo su
umount /home/user/myMount
exit

問題は、最初の行が実行された後、シェルが root モードになるが、実行が停止することです。もちろん、この時点で 2 番目のスクリプトを作成して実行することもできますが、コマンドを自分で入力するだけでよいため、これではスクリプト作成の目的が無効になります。

もう 1 つの明白なアイデアは、最初に root ユーザーからスクリプトを実行することです。ただし、このスクリプトの他のコマンドのいくつかは、root ユーザーの場合、これほど多くのアクセスでセキュリティの脆弱性が露呈するため、失敗します。

そのため、ルートに入り、そこから出る方法が必要です。

ありがとう。

4

2 に答える 2

2

コマンドを指定する

sudoコマンドは、コマンドとオプションの引数を取ることができます。例えば:

sudo umount /home/user/myMount

これにより、指定されたコマンドとその引数のみがルートとして実行されます。コマンドを別のユーザーとして実行する場合は、-u フラグを使用できます。たとえば、umountを Fred として実行するには、次を使用できます。

sudo -u fred umount /home/user/myMount

この問題に対処する方法は確かに他にもありますが、これが最も簡単で最も一般的な方法です。

于 2013-04-12T23:15:58.147 に答える