![chromium+xdg-open Wireshark 来自 URL 方案处理程序:无法在子进程中运行 /usr/bin/dumpcap:权限被拒绝](https://linux22.com/image/939833/chromium%2Bxdg-open%20Wireshark%20%E6%9D%A5%E8%87%AA%20URL%20%E6%96%B9%E6%A1%88%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%EF%BC%9A%E6%97%A0%E6%B3%95%E5%9C%A8%E5%AD%90%E8%BF%9B%E7%A8%8B%E4%B8%AD%E8%BF%90%E8%A1%8C%20%2Fusr%2Fbin%2Fdumpcap%EF%BC%9A%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D.png)
我需要从 Web 服务的 Web 用户界面启动本地 Wireshark,以立即启动捕获会话,并使用一些外部捕获插件连接到 Web 服务。使用 Firefox 时,启动 Wireshark,然后数据包捕获即可。使用 Chromium 时,Wireshark 启动,但数据包捕获失败,因为 /usr/bin/dumpcap 似乎受到限制。
- 安装 Wireshark,以便非 root 用户也可以使用它。
- 将我的用户添加到 wireshark 组:
sudo gpasswd -a $USER wireshark
- 从 bash 终端启动 wireshark 并成功开始捕获。
接下来,我注册了一个桌面条目(xdg-settings set default-url-scheme-handler xxx xxx.desktop
):
[Desktop Entry]
Encoding=UTF-8
Name=Remote Capture URL Handler
Type=Application
Exec=wireshark -k -i xxx -o extcap.xxx.url:%u
MimeType=x-scheme-handler/xxx
Terminal=false
NoDisplay=true
Categories=Utility
单击 xxx:// 链接可以正确启动 Wireshark,但 Wireshark 无法启动 dumpcap:
Couldn't run /usr/bin/dumpcap in child process: Permission denied
Dumpcap 已设置 POSIX 文件功能,但看起来 Chromium 沙盒可能会改变边界功能?
$ ls -l `which dumpcap`
-rwxr-xr-- 1 root wireshark 121344 Mar 15 18:01 /usr/bin/dumpcap
$ getcap `which dumpcap`
/usr/bin/dumpcap cap_net_admin,cap_net_raw=eip
我如何使用 Chromium 注册我的应用程序,以便以用户的完整权限正确启动,从而 Wireshark 能够运行 dumpcap?