私のプログラムには、必要に応じてエントリを追加/削除するために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
おそらく好みの問題でしょう。