为非 root 用户设置 wireshark

为非 root 用户设置 wireshark

我正在设置 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

  1. 使用 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
    
  2. 使用 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
    

不要忘记注销当前用户并重新登录(添加用户组)

相关内容