如何设置用户更改网络连接和状态的权限?例如,如何允许/禁止用户连接到新的无线网络?如何允许/禁止用户关闭网络?
答案1
您可以为一个或多个用户创建本地策略。
创建存储设置文件的文档...
触摸/var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla
添加一个或多个策略...
[让 foo 修改网络的系统设置] 身份=unix-用户:foo 操作=org.freedesktop.NetworkManager.settings.modify.system ResultAny=否 结果无效=否 结果活动=是 [不允许 foo 启用/禁用网络] 身份=unix-用户:foo 操作=org.freedesktop.NetworkManager.settings.启用-禁用-网络 ResultAny=否 结果无效=否 结果活动=否
关键是ResultActive
可以设置为 yes、no、auth_admin 或 auth_admin_keep 的元素,其中后两者将需要具有 sudo 权限的另一个用户的密码。
该Action
元素定义允许/禁止哪些操作或需要使用密码进行身份验证。有选项,例如org.freedesktop.NetworkManager.enable-disable-network
用于切换网络为启用/禁用。您可以在/usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
文件中看到更多选项,只需查找类似内容<action id="org.freedesktop.NetworkManager.enable-disable-network">
并阅读其描述即可。
您还可以使用*
通配符设置所有值...
[防止 foo 修改除管理员密码之外的所有网络状态和设置] 身份=unix-用户:foo 操作=org.freedesktop.NetworkManager.* ResultAny=否 结果无效=否 结果活动=auth_admin_keep
这将需要密码才能对网络设置或状态进行任何更改。
您可以通过包含在脚本中的单个命令执行此操作......
sudo su -c 'printf “[防止 foo 修改所有网络状态和设置]\nIdentity=unix-user:foo\nAction=org.freedesktop.NetworkManager.*\nResultAny=no\nResultInactive=no\nResultActive=auth_admin” > /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla'
参考:
答案2
您可以将用户添加到“netdev”组。
但我不确定这是否会赋予他们超乎预期的权利。
看:https://wiki.ubuntu.com/Security/Privileges#Connect_to_wireless_and_ethernet_networks
答案3
Linux 操作系统是安全的,它很可能在输入 WiFi 登录密钥之前要求进行身份验证,我也遇到过这个问题,您需要做的就是在出现消息时输入用户密码,然后系统会提示您输入网络密钥。
无需进入 etc/ 或 /use 或修改任何文件,实际的文件系统不会产生另一个问题。
这是一个安全步骤,如果有人在注销后控制了您的计算机,他们就需要您的密码才能访问浏览器。
如果您没有进入网络的密码,那么您不应该使用该计算机。