root権限で実行する必要があるbash
スクリプトがありますが、通常のユーザーが呼び出す必要があります。
難しいのは、スクリプトがパスワードを要求してはならず、sudoersファイルを使用したくないということです。 Sudoまたはs の使用を避けたい=。
これは可能ですか?
Bashスクリプトではなく通常のアプリケーションの場合、その所有権をrootに与え、アプリケーションにsetuidビットを設定します。次に、実行時に、アプリケーションが実行されている有効なユーザーはrootです。ただし、セキュリティ上の理由により、これは多くのシステムではシェルスクリプトで禁止されています。 この質問 unix.stackexchange.comのここでは、これを克服する方法を扱います。
Sudoを使用します。 Sudo /path/to/myscript
を呼び出す必要がない場合は、1行のラッパーexec Sudo /path/to/myscript "$@"
を記述します。 シェルスクリプトでsetuidを許可する 、特に Sudoの使用に関するMaciej Piechotkaの回答 および setuidプログラムに関するより一般的な説明 を参照してください。