在 Debian 系统中,dumpcap 是 Wireshark 用来捕获网络数据包的程序。默认情况下,普通用户没有权限直接抓包,因为需要访问网络接口(通常是 CAP_NET_RAW / CAP_NET_ADMIN 能力)。
“给 dumpcap 提权”通常有两种安全、推荐的做法,而不是用 sudo 或 setuid root 粗暴提权。
Debian 官方推荐做法。
sudo apt update
sudo apt install wireshark
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
getcap /usr/bin/dumpcap
应显示:
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip
sudo usermod -aG wireshark $USER
然后重新登录。
✅ 这样普通用户即可直接抓包,而 dumpcap 不是 root。
sudo dumpcap -i eth0
或抓包保存:
sudo dumpcap -i eth0 -w capture.pcap
⚠️ 缺点:每次都要 sudo,且以 root 运行。
sudo chmod 4755 /usr/bin/dumpcap
虽然能提权,但:
ls -l /usr/bin/dumpcap
filecap /usr/bin/dumpcap
✅ 首选:
setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
如果你愿意,可以告诉我:
我可以给你更精确的建议。