我正在尝试从网络命名空间内捕获流量,并以非特权用户身份在主机上使用 Wireshark 查看。为此,我tcpdump
在目标网络命名空间内运行,并将捕获的数据写入/tmp/fifo
主机可访问的命名管道。
当我尝试通过运行在主机上的 Wireshark 中查看此流量时wireshark -k -i /tmp/fifo
,收到错误消息:
Couldn't run dumpcap in child process: Permission denied
运行ls -l /bin/dumpcap
输出权限-rwxr-xr-- 1 root wireshark
,这解释了为什么dumpcap
不属于该组的用户无法执行wireshark
。
由于用户实际上只是从管道读取字节,因此不需要 root 权限或能力。我可以把用户添加到wireshark
组,但该dumpcap
二进制文件有一些我不太想授予的能力。或者,我可以剥离这些能力dumpcap
,使其可由所有人执行。简单测试一下,这种方法确实有效,但可能会dumpcap
以意想不到的方式崩溃,因为它本来就是用这些能力来执行的。
有没有更直接的方法来实现我的目标?