Nic*_*hov 8 indicator permissions network-manager wireless networking
我正在使用 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
Run Code Online (Sandbox Code Playgroud)
如果这有帮助,当我以这种方式安装 Ubuntu 时,它会在连接和卸载 USB 闪存驱动器时要求输入密码。此外,当我为shutdown命令创建快捷方式时,为了能够通过单击图标关闭我的计算机,我必须更改以下权限/sbin/shutdown:
chmod u+s /sbin/shutdown
Run Code Online (Sandbox Code Playgroud)
也许 Wi-Fi 正在发生类似的事情,我需要更改一些权限才能使其正常工作?
wht*_*ger 10
第1步
这可以通过修复 NetworkManager 的 PolicyKit 规则来解决。首先检查是否.pkla有文件[nm-applet]部分已经存在/etc/polkit-1/localauthority/10-vendor.d。如果是的话,使得它的备份和旧ResultAny=no的价值yes在[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
Run Code Online (Sandbox Code Playgroud)
将此文件中的your_username替换为您的真实登录名。如果您想添加多个用户,请Identity像这样更改条目(并将用户名替换为所需的用户名):
Identity=unix-user:username1;unix-user:username2
Run Code Online (Sandbox Code Playgroud)
如果您希望添加更多用户,那么您应该考虑将所有用户添加到netdev组中useradd并将规则更改为:
Identity=unix-group:netdev
Run Code Online (Sandbox Code Playgroud)
现在将此.pkla文件复制到 PolicyKit 目录:
sudo cp org.freedesktop.NetworkManager.pkla /etc/polkit-1/localauthority/50-local.d/
Run Code Online (Sandbox Code Playgroud)
第2步
您还应该检查 PolicyKit 身份验证代理是否正在运行 - 如果没有它,此规则将无法工作。如果ps -ef | grep kit | grep agent什么都不返回,那么它没有运行。
检查这个二进制文件是否存在。对于 GNOME,可以在此处找到此文件:
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-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
Run Code Online (Sandbox Code Playgroud)
如果您什么也没找到,则根本没有安装 PolicyKit 代理。使用apt-cache search PolicyKit Authentication Agent命令在 APT 数据库中搜索包名称并为您的 DE 安装适当的包。对于 MATE,它将是mate-polkit.
由于某种原因,它不会自动启动。您可以搜索/etc/xdg/autostartPolKit 代理.desktop启动器并分析其启动失败的原因。或者,您可以使用 DE 的“启动应用程序”创建自己的启动器,并添加 Polkit 身份验证代理命令以正确启动它。
如果您有兴趣,这里有一篇关于 PolicyKit 权限的广泛而精彩的文章。
| 归档时间: |
|
| 查看次数: |
16923 次 |
| 最近记录: |