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
それもしませんでした。
少し遅れましたが、同じ問題がありました。 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を設定
おそらくこれでうまくいくかもしれません。すでに投稿されたものに似ています。 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が表示されるはずです。