sudoなしでiptablesを使用するためのバイナリに権限を与える正しい方法

sudoなしでiptablesを使用するためのバイナリに権限を与える正しい方法

私のプログラムには、必要に応じてエントリを追加/削除するためにiptables / ip6tablesにアクセスする必要があるバイナリがあります。ユーザーが毎回sudoを使用せずにバイナリを実行できるように環境を設定するインストールスクリプトを持つことは合理的です。ユーザーがsudoを使用する唯一の時間はインストールのためのものです。その後、自分のアカウントを使用してバイナリを実行できます。問題は、インストールスクリプトでこの機能を有効にするためにどのコマンドを実行する必要があるのか​​わからないことです。

答え1

この権限を必要とするユーザーのグループを作成します。おそらくそのようなグループがすでに存在する可能性がありますusers

次に実行します(ルートとして、おそらく経由sudo)。

# chgrp users /usr/bin/iptables
# chmod u+rxs,o= /usr/sbin/iptables

これにより、このグループの誰かがrootとしてコマンドを実行できるようになります。 (iptablesルートを適切に調整してください。)

別の方法は、ユーザー/グループ許可を使用してsudoコマンドを実行することです。セキュリティに関しては、コマンドo=から省略されない限り同じですchmod。しかし、このアプローチはもう少し現代的です。sudoおそらく好みの問題でしょう。

関連情報