2

root 以外のpcap_lookupdev()ユーザーとして実行された場合は errbuf 変数に入力されますが、root として実行された場合は同じ関数が最初に使用可能なネットワーク インターフェイスの値を返します。

このアクセスは、OS またはライブラリによって無効にされていますか。OSだと思います。正解は?

これは宿題の質問ではありません

4

3 に答える 3

7

一般に、ファイル、デバイス、および OS によって提供されるその他のサービスへのアクセスに関しては、Unix (したがって Linux) のアクセス モデルが OS に実装さています。

ユーザー空間プログラムは、実行したいことは何でも試し、ユーザーにメッセージを通知するなどしてエラー状態を適切に処理することが期待されます。

これにはいくつかの利点があります。

  • 保守性: アクセス ポリシーの適用は OS に残り、一様に構成できます。リソースへのアクセスを制限したい管理者は、ここでこのライブラリを構成するのではなく、そのライブラリをそこに構成するのではなく、1 回実行します。

  • 構成可能性: 管理者は、ユーザー空間の実装ごとに制限されることなく、必要なアクセス ポリシーを単純または複雑に構成できます。

  • セキュリティ: 一般に、ユーザー空間プログラムは、アクセス ポリシーの実施に関して信頼されるべきではありません。オオカミが羊を守っているようなものです。

編集:

あなたの場合、pcapネットワークインターフェイスへの低レベルのアクセスが必要です。セキュリティへの影響 (ネットワーク トラフィックのキャプチャ、任意のネットワーク パケットの生成など) により、このようなアクセスは特権ユーザーのみに制限されます。たとえば、Linux では、ユーザーが使用できる機能pcapが必要です。CAP_NET_RAW

于 2011-02-03T12:11:10.757 に答える
0

pcap 機能の多くは、正しく動作するために root 権限が必要です。これが問題ではないでしょうか?

于 2011-02-03T12:11:05.193 に答える