別のユーザーの権限で(自動的に)bashスクリプトを実行する方法はありますか? 「Sudo」は正しい方法だと思いますが、プロセスを自動化する方法がわかりません。
例えば。このようなものを実行したい(ユーザー「bla」は「blub」の下でプロセスを実行します):
Sudo <the user under which i want to run the process> <path to script>
だから私はそれを正しく理解しました。
ユーザー「bla」がユーザー「blub」としてコマンドを実行したいですか?
次に、このようなものが機能する可能性があります。
Sudo -u blub /path/to/command
パスワードを要求されずにこれを行う必要がある場合は、次の行を/ etc/sudoersに追加します(visudoコマンドを使用)。
bla ALL=(blub) NOPASSWD: /path/to/command
sUIDおよびSGIDビットのアクセス許可を操作できます( これは本当に危険な場合があることに注意してください )
スクリプトを実行しているユーザーが属するグループにこのファイルを実行する権限を付与し、SUIDを介して、このスクリプトを実行するすべてのユーザーに、スクリプトを所有するユーザーとして実行するように設定します。
Sudo chmod 4751 /path/to/my/file
Sudo chgrp somegroup /path/to/my/file
次に、スクリプトをserB who is member of somegroupとして実行する必要があり、スクリプトはserAおよびとして実行されます。 somegroup
ls -l /path/to/my/file
-rwsr-xr-- userA somegroup /path/to/my/file
Cgiからスクリプトを実行したかったのです。私のスクリプトはいくつかのディレクトリとファイルを生成し、nagiosユーザーがそれらを所有する必要がありました。これは私がしたことです:
edit /etc/sudoers using visudo command
Apache ALL=(nagios) NOPASSWD: /usr/local/nagios/libexec/pangoo_lib/change_state_simulation
私のcgi(Apacheユーザー)から、スクリプトが実行されます。
Sudo -u nagios /usr/local/nagios/libexec/pangoo_lib/change_state_simulation