如何使用 root 权限运行wireshark?

Sve*_* AA 107 permissions wireshark

Wireshark 的标准安装不授予程序访问网络接口的权限。

我想我必须用 运行程序sudo,但不知道如何将它添加到图标 - 如果这是这样做的方式。

Oli*_*Oli 166

对于 WireShark,有更好的方法。通常需要 root 的位是数据包收集应用程序,这可以配置为允许某些人使用它而无需sudo, gksu, etc

在终端中(非常重要的是你在终端中,而不仅仅是 Alt+F2 对话)运行这个:

sudo dpkg-reconfigure wireshark-common
Run Code Online (Sandbox Code Playgroud)

这将询问您是否允许非 root 用户嗅探。这就是我们的目标,所以选择Yes并点击返回。

重新配置wireshark-common

这将添加一个wireshark组。该组中的任何人都可以在没有 root 的情况下嗅探。这显然比让任何人嗅探更安全,但确实意味着没有密码检查。从技术上讲,任何可以访问使用wireshark帐户登录的计算机的人都可以嗅探。如果你能接受,那就继续吧。

如果没有,请再次运行并选择否。

然后你只需要将用户添加到该组。运行这个:

sudo adduser $USER wireshark
Run Code Online (Sandbox Code Playgroud)

并重新启动或注销。当你回到它应该让你开始嗅探而不用大惊小怪。

  • 而且,是的,这绝对是比以 root 身份运行 Wireshark 更好的方法。Wireshark 源代码中的 README.packaging 文件说“WIRESHARK 包含超过两百万行源代码。不要以 root 身份运行它们。” (10认同)
  • 此解决方案在 14.04 中停止工作 (4认同)
  • @TahaJahangir 如果重新启动/注销不方便,您可以在成为“wireshark”组的成员后使用“newgrpwireshark”命令暂时进入该组。 (3认同)
  • @TahaJahangir 和 Oli:比注销更方便的是使用 `su - $USER`,如[重新加载 Linux 用户的组分配而不注销 - 超级用户](https://superuser.com/questions/272061/重新加载-a-linux-users-group-assignments-without-logging-out) (3认同)
  • 有什么方法可以跳过重新启动/注销步骤? (2认同)
  • @Janghou 仍然对我有用。是否将您的用户添加到了wireshark 组并重新启动? (2认同)

pyp*_*ism 8

实际上,您不需要以 root 身份启动 WireShark。请阅读官方页面。简而言之,您应该这样做:

sudo groupadd wireshark
sudo usermod -a -G wireshark $USER
sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod o-rx /usr/bin/dumpcap
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
sudo getcap /usr/bin/dumpcap
Run Code Online (Sandbox Code Playgroud)

然后注销并再次登录。

注意:此方法在 16.04 LTS、17.10 和 18.04 LTS 上进行了测试。

  • 除非更改,否则这将保持接口加载。须藤 chgrp 用户名 /usr/bin/dumpcap (2认同)