![基礎となるコマンドへの権限を許可せずに、カスタム bash コマンドへの権限を許可する](https://rvso.com/image/1417386/%E5%9F%BA%E7%A4%8E%E3%81%A8%E3%81%AA%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%B8%E3%81%AE%E6%A8%A9%E9%99%90%E3%82%92%E8%A8%B1%E5%8F%AF%E3%81%9B%E3%81%9A%E3%81%AB%E3%80%81%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%20bash%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%B8%E3%81%AE%E6%A8%A9%E9%99%90%E3%82%92%E8%A8%B1%E5%8F%AF%E3%81%99%E3%82%8B.png)
弊社のサーバーの 1 つに、監視ユーザーによって実行される自動スクリプトがあります。このスクリプトは、プライマリユーザーによって実行される別のスクリプトに、ログ ファイルを更新するように指示する必要があります。
このコードはsudo kill -UPDATE_LOG pid
当然、このコマンドを実行するには、監視ユーザーに権限が必要です。ただし、明らかな理由から、この自動スクリプトにプロセスを強制終了する権限を与えたくありません。
私は次のようなことをしたいですalias update_log='kill -UPDATE_LOG; grant update_log on observing_user
答え1
おそらく使用
sudo pkill -UPDATE_LOG <process-name>
kill の代わりに、あなたのニーズを満たすのに十分制限的でしょうか?
これに対処する別の方法は、このアクションを実行するカスタム スクリプトまたは exec に sudo で提供するコマンドを埋め込むことです。
答え2
わかりました。キーワードを変更したら答えが見つかりました。
参照: sudo ユーザーが特定のコマンドを実行できないようにするにはどうすればよいですか?
ステップ1:
sudo visudo
構文は次のようになります。
user host=command
これにより、特定のコマンドへのsudoアクセスが許可されます。また、次のようなグループも実行できます。
%group host=command
3 つの「列」のいずれかで ALL を使用して、これを任意のホスト、任意のコマンド、または任意のユーザーに適用できます。
私の解決策は
observing_user ALL=kill -USR1 *