为非root用户设置wireshark

use*_*290 13 permissions wireshark

我正在设置wireshark以非root用户身份运行,a la here,即:

sudo apt-get install wireshark
sudo dpkg-reconfigure wireshark-common 
sudo usermod -a -G wireshark $USER
(restart)
Run Code Online (Sandbox Code Playgroud)

这一切都很棒。但是当我尝试以wireshark用户身份启动wireshark时,使用:

sudo -s -u $USER wireshark
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

no protocol specified
gtk-warning ** cannot open display
Run Code Online (Sandbox Code Playgroud)

“未指定协议”部分似乎很简单。而 gtk-warning cannot open display 似乎与这个问题完全相关。

“你有两种方法可以让这个工作:授予它或让 root 获取它。你(greg)可以通过 'xhost local:root' 授予它。或者 root 可以获取它,因为它可以访问你的文件:'export AUTHORITY=/home/greg/.Xauthority'。”

这对我来说没有意义。如果其他用户无论如何都无法打开程序,那么授予他们访问权限有什么意义呢?出于安全原因进行这种分离,因此不会进行上述修改以恢复先前的评论

“这与对您的 X 服务器的访问控制有关。您不希望任何人在您的屏幕上打开窗口,是吗。因此,如果您在自己的帐户 (greg) 下启动 X 服务器,那么任何其他用户(如 root ) 无法访问它。”

TLDR;这是标准做法以及应该这样做的方式,以实现 root 和其他用户帐户之间的分离吗?这对我来说似乎是一个“黑客”。

gun*_*ert 10

$USER在这里被视为一个shell变量。上面的第三个命令将您的用户添加到wireshark group并且应该替换为sudo adduser <yourUser> wireshark.
现在您应该能够像自己一样调用wireshark (不再需要sudo)。

正如 Guerlando Ocs 指出的那样,您可能会遇到不存在组wireshark的情况。在这种情况下,您可以通过首先运行来解决问题

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

并选择是,以便为非 root 用户创建组。


小智 6

这就是我安装 Wireshark 并使其工作的方式,以非 root 用户身份运行它:

安装 Wireshark:

sudo apt-get update
sudo add-apt-repository ppa:dreibh/ppa
sudo apt-get update
sudo apt-get install wireshark
Run Code Online (Sandbox Code Playgroud)

使其能够以非 root 用户身份运行:

sudo dpkg-reconfigure wireshark-common
sudo adduser <yourUser> wireshark
sudo chmod +x /usr/bin/dumpcap
Run Code Online (Sandbox Code Playgroud)

  • `sudo chmod +x /usr/bin/dumpcap` 就成功了 (4认同)
  • 为什么建议使用 ppa?Wireshark 可在标准存储库中找到。 (2认同)
  • 请注意:切勿从互联网上随机安装 ppa。它只是任何人编译的存储库。这是非常危险的 (2认同)