fpg*_*ost 15 permissions wireless password 12.04
因此,目前当我的非管理员用户尝试连接到新的 WiFi 网络时(例如在咖啡馆里),NetworkManager 会提示输入管理员用户的密码。有没有办法关闭它并允许非管理员用户连接到他们喜欢的任何 Wifi 网络?
编辑:只是为了澄清,我的意思是计算机之前从未连接过新的WiFi 网络,因此在现有已建立的连接上单击“对所有用户可用”不会解决问题 - 因为目前非管理员用户没有问题重新连接到家庭网络的次数不限。
小智 16
我在 Ubuntu 13.04 中使用以下解决方案取得了成功:
/usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy以 root/sudo 权限打开并搜索以下行:
<message>System policy prevents modification of network settings for all users</message>
Run Code Online (Sandbox Code Playgroud)
下面几行应该是这样的:
<allow_active>auth_admin_keep</allow_active>
Run Code Online (Sandbox Code Playgroud)
将其更改为:
<allow_active>yes</allow_active>
Run Code Online (Sandbox Code Playgroud)
保存文件并重新启动计算机。
您还可以为此创建本地策略
[让用户瞳孔修改网络的系统设置] 身份=unix-用户:学生 操作=org.freedesktop.NetworkManager.settings.modify.system 结果任意=否 结果无效=否 结果有效=是
在一个名为/etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla。
这里的优点是这可以是单个命令并且可以在脚本中使用!
printf "[让用户学生修改网络的系统设置]\nIdentity=unix-user:pupil\nAction=org.freedesktop.NetworkManager.settings.modify.system\nResultAny=no\nResultInactive=no\nResultActive=yes" | sudo tee /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla
参考:Ubuntu 手册页:pklocalauthority
您可以编辑系统配置文件,但这是蛮力。首先,根据经验,配置位于/etc、not/usr或/var其他任何地方。HarlemSquirrel 解释了如何对默认策略进行适当的更改。编辑下的文件/usr迟早会在你面前炸毁,因为这些文件是由系统包提供的,最终会被更新/替换。
但更大的问题是这些更改完全没有必要,至少从 18.04 开始。这是一个“你拿错了”的问题。实际上,这是 NM 小程序部分的可用性问题,但无论如何。看看/usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy:
<action id="org.freedesktop.NetworkManager.settings.modify.system">
<description>Modify network connections for all users</description>
<defaults>
<allow_any>auth_admin_keep</allow_any>
<allow_inactive>auth_admin_keep</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
</action>
Run Code Online (Sandbox Code Playgroud)
这意味着用户无法创建连接,对吗?错误的!进一步看:
<action id="org.freedesktop.NetworkManager.settings.modify.own">
<description>Modify personal network connections</description>
<defaults>
<allow_any>auth_self_keep</allow_any>
<allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
Run Code Online (Sandbox Code Playgroud)
如您所见,NetworkManager 支持用户和系统连接的概念。问题是,小程序默认创建系统连接。因此,当您打开托盘上的小程序并单击Select Network,然后选择您要连接的那个时,它会要求一个 sudo 用户,因为只允许管理员创建系统连接。
但是,如果您打开“设置”应用程序,转到Wi-Fi并单击所需的网络,则无需管理员密码即可轻松连接。在公园里散步。
小程序默认创建系统连接的原因超出了我的理解,特别是因为您可以在以后随时将用户连接设置为系统连接。这是连接属性下的“可供其他用户使用”选项,当您检查并单击“应用”时,它会立即要求输入 sudo 密码,这是应该的。我会尝试找到一种方法让小程序默认创建用户连接,如果我想通了,我会更新这个答案。
这并不是我真正希望的修复方法,但我发现的一种解决方法就是禁用NetworkManager所有功能并改为使用Wicd.
NetworkManager启动时首先停止运行:
sudo gedit /etc/NetworkManager/NetworkManager.conf
Run Code Online (Sandbox Code Playgroud)
然后 # 出线managed。也 ##start on (local-filesystems and started dbus)出自/etc/init/network-manager.conf. 然后只是为了双重确定
sudo mv /etc/init/network-manager.conf /etc/init/network-manager.conf-disabled
sudo mv /etc/xdg/autostart/nm-applet.desktop /etc/xdg/autostart /nm-applet.desktop.disabled
Run Code Online (Sandbox Code Playgroud)
现在可以直接使用Wicd,似乎不需要密码提示。
| 归档时间: |
|
| 查看次数: |
23025 次 |
| 最近记录: |