我使用以下方式安装了wireshark
( tshark
)
sudo apt-get install tshark
这将安装tshark
可执行文件/usr/bin/tshark
。
现在的问题是,如果没有 root 权限,我无法运行它。我如何使用普通用户的权限执行此命令?
答案1
您需要配置 wireshark 以允许非 root 用户捕获数据包:
dpkg-reconfigure wireshark-common
将您自己添加到wireshark
群组:
sudo usermod -a -G wireshark "$USER"
重启系统以便应用组权限。现在您可以启动 wireshark 并捕获一些数据包!
答案2
Wireshark维基百科讨论了权限以及在必要时“规避”它们的方法 - 尽管我很确定在 Linux 上捕获任何数据包都需要某种级别的 root 权限。
答案3
我遇到了类似的问题,当以非 root 用户身份运行 Wireshark(tshark 的 GUI 版本)时,无法看到任何网络接口。如今,Ubuntu 和 Debian 支持文件功能,因此我能够以非 root 用户身份运行 Wireshark(和 tshark)。
创建一个 wireshark 组。
sudo groupadd wireshark
将您的用户名添加到 wireshark 组。
sudo usermod -a -G wireshark yourusername
将 dumpcap 的组所有权更改为 wireshark 组。
sudo chgrp wireshark /usr/bin/dumpcap
将 dumpcap 的文件权限设置为 754 (用户为 rwx,组为 rx)。
sudo chmod 754 /usr/bin/dumpcap
启用 dumpcap 的文件功能。
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
dpkg-reconfigure
如果您通过 Synaptic 安装 Wireshark 或 tshark 作为包并为非 root 用户启用数据包捕获,您可能还需要运行wireshark-common。sudo dpkg-reconfigure wireshark-common
答案4
可能需要 root 凭证才能将网卡置于混杂模式。您需要设置用户 IDhttp://www.zzee.com/solutions/linux-permissions.shtml#setuid或者使用 sudo 运行。Sudo 是更好、更安全的选择。