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)