sudoパスワードをハードコードせずにプログラムのネットワークインターフェイスに権限を付与する正しい方法は何ですか? [コピー]

sudoパスワードをハードコードせずにプログラムのネットワークインターフェイスに権限を付与する正しい方法は何ですか? [コピー]

私はGNU / Linuxでいくつかのセンサーを記録する小さなツールを開発しています。一部のセンサーはUDPを介してデータを送信するため、リブチンキャプチャしてください。

Webアプリケーションでセンサーの起動/停止を制御したいが、Webインターフェイスを聞くにはroot権限が必要です。ボタンをクリックするたびに、スニファーを実行するためにsudoパスワードをハードコードするというアイデアは気に入らません。すべてのプロセスをrootとして実行することを避けたいのですが、インターフェイスへのアクセスを許可することは間違いなく正しい方法でなければなりません。スニッフィングを開始するためにPythonまたはbashスクリプトで実行できるプロセス。

誰でも私にアドバイスを与えることができますか?

ベストアンサー1

setcapコマンドはこの問題を解決します。

sudo setcap cap_net_raw,cap_net_admin,cap_net_bind_service+eip <binaryFile>

おすすめ記事