tcpdump 权限问题

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

那也没用。

答案1

有点晚了,但我刚刚遇到了同样的问题。您需要授予tcpdump权限和能力才能允许原始数据包捕获网络接口操纵

添加一个捕获组并将自己添加到其中:

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

请注意,这将允许该组中的每个人数据包捕获操纵网络接口并读取原始数据包!

在这里找到:配置 tcpdump 以非 root 身份工作

答案2

也许这可能有用。与已经发布的内容类似。它尚未在 ubuntu 上进行测试。

(使用您的用户所属的组)chgrp wireshark /usr/sbin/tcpdump

设置cap'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

相关内容