機能専用C Linuxプログラム内でiptablesルールを追加できますか?それともルートが必要ですか?

機能専用C Linuxプログラム内でiptablesルールを追加できますか?それともルートが必要ですか?

C Linuxプログラム内にiptablesルールを追加する必要があります。

どうすればいいですか?ルートアクセスが必要ですか、それとも一部の機能のみを付与できますか?

私はCAP_NET_RAW + iepを与え、popen()、system()、execve()を使ってiptablesを設定しようとしましたが、うまくいきませんでした。

sudoをすると明らかに動作しますが、root権限を与えたくありません。

ありがとうございます。

ベストアンサー1

ユーザーにroot権限を付与する必要はありません。 sudoersファイルを編集し、ユーザーがsudoを介して実行できるコマンドを制限できます。あるいは、sudoers ファイルに NOPASSWD オプションを提供することもできます。

MY_USER_NAME  ALL = NOPASSWD: /sbin/iptables

sudoersファイルを編集した後、MY_USER_NAMEは "sudo iptables"コマンドを実行できます。権限を必要とする他のコマンドは実行できません。

sudoersファイルを編集するには、visudoコマンドを使用します。

おすすめ記事