我想捕获 FPGA 发送的 UDP 数据包,带宽约为 10 Gbit/s。我发现tcpdump结合快速 SSD 完全能够接收连续的 10 Gbit/s 流并将其无损地存储在磁盘上。
当我跑步时sudo tcpdump,一切都按预期进行。
但是,我需要能够在tcpdump没有sudo. 如果没有sudo我得到这个错误:
tcpdump: enp4s0f0: You don't have permission to capture on that device
(socket: Operation not permitted)
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止发现并尝试在tcpdump不启用的情况下启用的内容sudo:
sudo su
groupadd pcap
usermod -a -G pcap $USER
chgrp pcap /usr/sbin/tcpdump
chmod 750 /usr/sbin/tcpdump
setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
Run Code Online (Sandbox Code Playgroud)
此处建议的解决方案
根据列出此解决方案的各个页面,这应该使我的常规用户帐户能够运行tcpdump,对吗?
但是,当我切换到常规用户帐户并运行时tcpdump,我得到以下信息:
bash: /sbin/tcpdump: Permission denied
(请注意,此错误消息与最初的错误消息不同)
我已经通过验证getent group …