如何使用root特权运行wireshark?


94

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

我想我必须使用来运行程序sudo,但是不知道如何将其添加到图标中-如果那样的话。


您在谈论WireShark吗?如果不是,您可以链接到应用程序的主页,以便我们可以看到您在说什么。谢谢。
奥利

实际上,他可能是在谈论Wireshark,而不是WireShark。:-)

tcpdump如果wireshark给您带来太多麻烦,您可以尝试使用Linux中的工具。
warfreak92

Answers:


149

对于WireShark,有更好的方法。通常需要root位是数据包收集应用,这可以被配置为允许某些人使用它没有sudogksuetc

在终端中(非常重要的是,您在终端中,而不仅仅是Alt + F2对话框)运行以下命令:

sudo dpkg-reconfigure wireshark-common

这将询问您是否要允许非root用户进行嗅探。这就是我们的目标,因此选择Yes并点击回车。

重新配置wireshark-常见

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

如果不是,请再次运行并选择“否”。

然后,您只需要将用户添加到该组即可。运行这个:

sudo adduser $USER wireshark

并重新启动或注销。当您回到里面时,应该让您开始嗅探,而不必担心被root。


2
有什么方法可以跳过重启/注销步骤吗?
塔哈·贾汉吉尔

4
该解决方案在14.04
Janghou

9
而且,是的,这绝对是一个很大比运行Wireshark的作为root更好的办法。Wireshark源代码中的README.packaging文件显示“ WIRESHARK包含超过两百万行源代码。请勿将它们作为根运行。”

3
@TahaJahangir如果不方便重新启动/注销,则可以newgrp wireshark在成为组成员后使用该命令临时进入该wireshark组。
Lekensteyn

3
@TahaJahangir和Oli:比注销更方便的是,su - $USER重新加载Linux用户的组分配而不注销一样使用-超级用户
nealmcb

3

您也可以通过gksu wireshark从终端运行以root特权运行Wireshark 。

请注意,以这种模式运行Wireshark存在安全方面的问题,即,任何危害Wireshark的漏洞利用现在都具有root特权而不是用户特权。与其他应用程序相比,Wireshark更为关注,因为从本质上(捕获和处理任意输入)来看,Wireshark比典型的桌面应用程序更容易受到攻击。您在SOHO网络上可能很安全,但是在继续操作之前,您应该意识到这一问题。

引文:


我只是用--enable-setcap-install标志配置了它,所以我不能这样做。
Smile.Hunter 2012年

这是更加危险和更加棘手的问题,因为当以root用户身份运行完整的gui时,会有更多可利用的bug,而当gui程序以root用户身份运行时,配置问题可能会出现。有关更好的选择,请参见上面的dpkg-reconfigure解决方案。
nealmcb

对于桌面用户,我认为这是一种解决方法。在对应用程序进行sudo时,它创建的所有文件都具有root权限,并且您需要不断更改文件权限,以使它们对您的主目录中的当前用户可用。一般来说,对于服务器和系统管理员来说,sudo实际上是最好的方法。
JulioHM 2013年

@JulioHM以root身份运行Wireshark对所有人(包括服务器和系统管理员)都是危险的。
kraxor 2014年

1
Wireshark的doc / README.packaging文件的第40行,它显示“ WIRESHARK包含超过两百万行源代码。请勿以根目录运行它们。” 认真对待该声明。

3

确实,您不需要以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

然后注销并再次登录。

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


1
除非更改,否则此接口将保持加载状态。sudo chgrp USER_NAME / usr / bin / dumpcap
amrx

1

您也可以尝试此操作,打开终端,运行此命令

# setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap

以非root用户身份运行wireshark

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.