Answers:
当您没有访问网络接口以进行监视的权限时,通常会出现“无法使用当前配置在此系统中捕获任何接口”消息。尝试打开终端并运行gksudowireshark。如果出现多个网络接口,那是因为在没有root权限的情况下运行wireshark时,您没有监视权限。
要解决此问题,请在终端中运行以下命令:
sudo setcap CAP_NET_RAW,CAP_NET_ADMIN,CAP_DAC_OVERRIDE+eip /usr/bin/dumpcap
sudo setcap
改用命令-或使用sudo dpkg-reconfigure wireshark-common
让软件包为您设置功能。
当我尝试运行wireshark时,出现此错误:
Couldn't run /usr/bin/dumpcap in child process: Permission denied
所以我以前以root身份运行它,这禁用了LUA。通知我LUA已被禁用的弹出窗口太烦人了,我试图对其进行修复。
首先,我通过运行检查权限
ls -l /usr/bin/dumpcap
结果是:
-rwxr-xr-- 1 root wireshark 96464 Jan 24 10:31 /usr/bin/dumpcap
这很明显,这就是Wireshark告诉我的。所以我只是将所有者从root更改为我的acc
sudo chown -R $LOGNAME /usr/bin/dumpcap
哪个可行,我现在可以在没有root的情况下运行wireshark
Googled“无法在子进程中运行/ usr / bin / dumpcap”并发现以下问题:
我无法使用wireshark“无法在子进程中运行/ usr / bin / dumpcap”
这被标记为重复并将我带到这里。提议的解决方案是:
sudo chmod +x /usr/bin/dumpcap
上面的命令确实有效,但是我想添加一个安全警告。这将允许捕获系统上所有用户的数据包。它可以是临时解决方案,但不希望用作永久解决方案。
我按照wireshark页面上有关捕获特权的说明进行操作:
https://wiki.wireshark.org/CaptureSetup/CapturePrivileges
他们建议将dumpcap执行限制为特定的组或用户。
我遵循了这些指示(进行了改编):
如果您的内核和文件系统支持文件功能,则为dumpcap设置网络特权
确保已安装必要的工具,例如setcap命令。
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
(注意:如果收到错误指示dumpcap不在/ usr / bin中,则将/ usr / bin替换为/ usr / sbin)
如果您的内核和文件系统不支持文件功能,请为dumpcap设置网络特权
在这种情况下,您需要将dumpcap set-UID设置为root。
sudo chown root /usr/bin/dumpcap
(注意:在此命令和下一个命令中,将/ usr / bin替换为/ usr / sbin,以防万一,您收到一条错误消息,该错误指示dumpcap不在/ usr / sbin中)
sudo chmod u+s /usr/bin/dumpcap
将捕获权限限制为仅一组
设置dumpcap的网络权限后:
在“ wireshark”组中创建用户“ wireshark”。
sudo chgrp wireshark /usr/sbin/dumpcap
sudo chmod o-rx /usr/sbin/dumpcap
确保Wireshark仅可从root用户和“ wireshark”组中的用户使用(我仅在最后完成此步骤-尚未完成)
最后,还有两个步骤:
sudo dpkg-reconfigure wireshark-common
选择“是”。
注销用户的所有接口(包括ssh,这是我最大的错误),然后再次登录。
希望您应该启动wireshark并以普通用户身份查看所有接口(不使用sudo)
wireshark &
如果您检查文件权限
ls -la /usr/bin/dumpcap
它仅允许用户和组执行
-rwxr-xr-- 1个根wireshark
gksudo wireshark
。