web-dev-qa-db-ja.com

tcpdumpアクセス許可の問題

Tcpdumpの実行に問題があります。非rootユーザーでtcpdumpを実行する必要があります。私の問題をウェブで検索し、私がすべきことを見つけました:

Sudo setcap cap_net_admin=eip /usr/sbin/tcpdump

これにより、ユーザーでtcpdumpを実行できましたが、次のようになりました。

you don't have permission to capture on that device

キャプチャしようとしたデバイスで。

また、少し力ずくで行った:

Sudo chmod +s /usr/sbin/tcpdump

それもしませんでした。

13
Sivan Sigal

少し遅れましたが、同じ問題がありました。 tcpdumpには、rawパケットキャプチャおよびネットワークインターフェイス操作を許可する権限と機能を与える必要があります

キャプチャグループを追加して、自分自身を追加します。

Sudo groupadd pcap
Sudo usermod -a -G pcap $USER

次に、tcpdumpのグループを変更し、許可を設定します。

Sudo chgrp pcap /usr/sbin/tcpdump
Sudo chmod 750 /usr/sbin/tcpdump

最後に、setcapを使用して、tcpdumpに必要な権限を付与します。

Sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

これにより、グループpcapの全員がネットワークインターフェースを操作し、生のパケットを読み取ることができるようになることに注意してください!

ここで見つけました: 非ルートとして動作するようにtcpdumpを設定

26
Horst

おそらくこれでうまくいくかもしれません。すでに投稿されたものに似ています。 ubuntuではテストされていません。

(ユーザーがメンバーになっているグループを使用)chgrp wireshark/usr/sbin/tcpdump

setcap 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip'/usr/sbin/tcpdump

getcap/usr/sbin/tcpdumpを使用すると、/ usr/sbin/tcpdump = cap_net_admin、cap_net_raw + eipが表示されるはずです。

0
Serjan