web-dev-qa-db-ja.com

suまたはsudoを使用せずにroot権限でプログラムを実行する方法

root権限で実行する必要があるbashスクリプトがありますが、通常のユーザーが呼び出す必要があります。

難しいのは、スクリプトがパスワードを要求してはならず、sudoersファイルを使用したくないということです。 Sudoまたはs の使用を避けたい=

これは可能ですか?

8
Stefan

Bashスクリプトではなく通常のアプリケーションの場合、その所有権をrootに与え、アプリケーションにsetuidビットを設定します。次に、実行時に、アプリケーションが実行されている有効なユーザーはrootです。ただし、セキュリティ上の理由により、これは多くのシステムではシェルスクリプトで禁止されています。 この質問 unix.stackexchange.comのここでは、これを克服する方法を扱います。

9
fschmitt

Sudoを使用します。 Sudo /path/to/myscriptを呼び出す必要がない場合は、1行のラッパーexec Sudo /path/to/myscript "$@"を記述します。 シェルスクリプトでsetuidを許可する 、特に Sudoの使用に関するMaciej Piechotkaの回答 および setuidプログラムに関するより一般的な説明 を参照してください。