TCPDUMP 安装问题

TCPDUMP 安装问题

运行以下命令时出现错误:

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

这会导致以下错误:

无法设置文件的功能/usr/sbin/tcpdump(无此文件或目录)文件的功能参数值不允许。或者该文件不是常规(非符号链接)文件

到目前为止我还没有找到任何解决方案 - 如果有人能提供或帮助我找到解决方案我将不胜感激。

答案1

以非 root 用户身份运行 tcpdump

这是一份简短的指南,介绍如何以非 root 用户身份设置 tcpdump,但仅限于添加到组的特定用户实际运行 tcpdump。这与从 sudo 运行 tcpdump 不同,后者实际上仍将以 root 用户身份运行 tcpdump。您还可以检查文件/usr/bin/tcpdump,如果它不位于/usr/sbin/tcpdump

您可以使用以下命令以安全的方式为非 root 用户启用此功能

groupadd tcpdump
addgroup <username> tcpdump
chown root.tcpdump /usr/sbin/tcpdump
chmod 0750 /usr/sbin/tcpdump
setcap "CAP_NET_RAW+eip" /usr/sbin/tcpdump

对以上内容做简单解释。

我们创建一个名为 tcpdump 的组,然后将我们希望能够使用 tcpdump 的用户添加到该组。然后,我们将 tcpdump 的用户/组更改为与 root 和新组匹配。然后,我们确保在 tcpdump 上设置了权限,以便组成员可以执行它,但其他普通用户不能。然后,我们使用 setcap 在可执行文件运行时为其提供 CAP_NET_RAW 权限。这样,tcpdump 就可以打开其原始套接字,除非您是 root,否则通常不允许这样做。

发现于:https://www.stev.org/post/howtoruntcpdumpasroot

相关内容