无法添加/激活连接。(32)权限不足

无法添加/激活连接。(32)权限不足

我正在全新安装一个带有 MATE 桌面环境的极简 Ubuntu 系统。当我单击 NetworkManager 图标,然后单击要连接的无线网络时,我收到一个对话框,其中显示:

连接失败

无法添加/激活连接

(32)权限不足。

我正在使用 Lubuntu 14.04.1 备用安装程序全新安装 Ubuntu 14.04,并选择F4->“安装基本命令行系统”,然后像这样手动安装 X、MATE 和 NetworkManager:

sudo apt-get install software-properties-common -y
sudo apt-add-repository ppa:ubuntu-mate-dev/ppa -y
sudo apt-add-repository ppa:ubuntu-mate-dev/trusty-mate -y
sudo apt-get install xorg mate-core --no-install-recommends -y
sudo apt-get install network-manager network-manager-gnome --no-install-recommends -y

如果有帮助的话,当我以这种方式安装 Ubuntu 时,它会在连接和卸载 USB 闪存驱动器时要求输入密码。此外,当我为shutdown命令创建快捷方式时,为了能够通过单击图标关闭计算机,我必须更改权限/sbin/shutdown

chmod u+s /sbin/shutdown

也许类似的事情也发生在 Wi-Fi 上,我需要改变一些权限才能让它正常工作?

答案1

步骤1

可以通过修复 NetworkManager 的 PolicyKit 规则来解决此问题。首先检查中是否已存在 部分的.pkla文件。如果是,请备份该文件并将此文件部分中的值更改为。[nm-applet]/etc/polkit-1/localauthority/10-vendor.dResultAny=noyes[nm-applet]

这些策略规则文件的结构描述如下这里

如果文件夹中不存在此文件10-vendor.d,我们将手动创建 PolicyKit 规则。创建名称org.freedesktop.NetworkManager.pkla包含以下几行的文件:

[nm-applet]
Identity=unix-user:your_username
Action=org.freedesktop.NetworkManager.*
ResultAny=yes
ResultInactive=no
ResultActive=yes

代替您的用户名在此文件中输入您的真实登录名。如果您希望添加多个用户,请Identity像这样更改条目(并将用户名替换为所需的用户名):

Identity=unix-user:username1;unix-user:username2

如果您希望添加更多用户,那么您应该考虑将所有用户添加到netdev团体并将useradd规则更改为:

Identity=unix-group:netdev

现在将此.pkla文件复制到 PolicyKit 目录:

sudo cp org.freedesktop.NetworkManager.pkla /etc/polkit-1/localauthority/50-local.d/

第2步

您还应该检查 PolicyKit 身份验证代理是否正在运行 - 如果没有它,此规则将无法工作。如果ps -ef | grep kit | grep agent没有返回任何内容,则表示它没有运行。
检查此二进制文件是否存在。对于 GNOME,此文件可在此处找到:

/usr/lib/policykit-1-gnome/polkit-gnome-身份验证代理-1

对于 MATE,它位于此处(分别针对 32 位和 64 位):

/usr/lib/i386-linux-gnu/polkit-mate/polkit-mate-authentication-agent-1
/usr/lib/x86_64-linux-gnu/polkit-mate/polkit-mate-authentication-agent-1

其位置在不同的 DE 中可能有所不同。如果未找到,请搜索:

locate agent | grep -v -E '^/var|doc|so|helper' | grep pol

如果您没有找到任何内容,则 PolicyKit Agent 根本没有安装。使用apt-cache search PolicyKit Authentication Agent命令在 APT 数据库中搜索软件包名称,然后为您的 DE 安装适当的软件包。对于 MATE,它将是mate-polkit

由于某种原因,它无法自动启动。您可以搜索/etc/xdg/autostartPolKit Agent.desktop启动器并分析其无法启动的原因。或者,您可以使用 DE 的“启动应用程序”创建自己的启动器,并添加 Polkit Authentication Agent 命令以正确启动它。

如果你有兴趣,这里有一个广泛而漂亮的文章关于 PolicyKit 权限。

答案2

@whtyger 答案在 Ubuntu 16.04 上完美运行。我不知道 MATE 是什么,但我试图通过 运行 bash/python 脚本php exec(长话短说,尝试从 php 运行这些命令。)Ubuntu 不允许我从终端控制网络设置。按照这些说明操作后,我现在非常满意!希望这对您有所帮助!

echo exec('python3 pypia/pypia.py -s -r us  2>&1',$out);
var_dump($out);

答案3

在 Ubuntu 20.04 上通过添加以下内容来工作:

[nm-applet]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.*
ResultAny=yes
ResultInactive=no
ResultActive=yes

到文件:

/etc/polkit-1/localauthority/10-vendor.d/org.freedesktop.NetworkManager.pkla

相关内容