我正在设置 wireshark 以非 root 用户身份运行,这里, 那是:
sudo apt-get install wireshark
sudo dpkg-reconfigure wireshark-common
sudo usermod -a -G wireshark $USER
(restart)
这一切都很棒。但是当我尝试以 wireshark 用户身份启动 wireshark 时,使用:
sudo -s -u $USER wireshark
我收到以下错误:
no protocol specified
gtk-warning ** cannot open display
“未指定协议”部分似乎很简单。而 gtk-warning 无法打开显示似乎与此完全相关问题。
“您有两种方法可以实现此功能:授予它或让 root 获得它。您 (greg) 可以通过‘xhost local:root’授予它。或者 root 可以获得它,因为它可以访问您的文件:‘export AUTHORITY=/home/greg/.Xauthority’。”
我觉得这没有意义。如果其他用户无论如何都无法打开该程序,授予他们访问权限有什么意义呢?这种分离是出于安全原因,因此进行上述修改不是在撤销之前的评论吗?
“这与 X 服务器的访问控制有关。您不希望任何人在您的屏幕上打开窗口,对吧。因此,如果您在自己的帐户 (greg) 下启动 X 服务器,则任何其他用户(如 root)都无权访问它。”
TLDR;这是标准做法吗?这是实现 root 和其他用户帐户分离的方法吗?在我看来,这似乎是一种“黑客行为”。
答案1
$USER
在这里将其视为 shell 变量。上面的第三个命令将您的用户添加到 ,wireshark group
并应替换为sudo adduser <yourUser> wireshark
。
现在您应该能够调用 wireshark就像你自己一样(不再需要 sudo)。
正如 Guerlando Ocs 指出的那样可能遇到这样的情况wireshark不存在。在这种情况下,您可以通过先运行
sudo dpkg-reconfigure wireshark-common
并选择是的因此它为非 root 用户创建组。
答案2
这是我安装 Wireshark 并使其工作的方式,以非 root 用户身份运行它:
安装Wireshark:
sudo apt-get update
sudo add-apt-repository ppa:dreibh/ppa
sudo apt-get update
sudo apt-get install wireshark
使其以非 root 用户身份运行:
sudo dpkg-reconfigure wireshark-common
sudo adduser <yourUser> wireshark
sudo chmod +x /usr/bin/dumpcap
答案3
安装 Wireshark
Wireshark 开发团队主要提供了两个 PPA 1. 稳定版本 2. 夜间版本(链接至Wireshark 开发者官方稳定版/Nightly PPA)
使用 Wireshark 开发者稳定版本 (最高可达 Ubuntu Bionic)
sudo add-apt-repository ppa:wireshark-dev/stable -y sudo apt update sudo apt install wireshark sudo dpkg-reconfigure wireshark-common sudo adduser $USER wireshark sudo chmod +x /usr/bin/dumpcap
使用 Wireshark Developers Nightly Release(支持至 ubuntu xenial)
sudo add-apt-repository ppa:wireshark-dev/nightly sudo apt update sudo apt install wireshark sudo dpkg-reconfigure wireshark-common sudo adduser $USER wireshark sudo chmod +x /usr/bin/dumpcap
不要忘记注销当前用户并重新登录(添加用户组)