连接到* new * WiFi网络时删除sudo密码


12

因此,当前,当我的非管理员用户尝试连接到新的WiFi网络(例如在咖啡馆时)时,NetworkManager会提示输入管理员用户的密码。有没有办法关闭此功能,并允许非管理员用户连接到他们喜欢的任何Wifi网络?

编辑:只是为了澄清,我的意思是说我真的是一个新的 WiFi网络,该计算机以前从未连接过,所以在现有的已建立连接上单击“对所有用户可用”将无法解决问题-因为当前非管理员用户没有问题尽可能多地重新连接到家庭网络。


/etc/sudoers是要编辑的文件,因此它不要求输入密码:help.ubuntu.com/community/Sudoers
Rinzwind 2013年

我以前曾经visudo允许非管理员用户做一些事情(例如sudo apt-get upate,例如),但是我不确定我必须在其中放置什么才能阻止他们在连接到新的wifi网络时被要求输入密码
fpghost

哈,你让我在那里。如果我从记忆中知道这一点,我会做出一个回答(正在寻找一点,但尚未找到它:D)
Rinzwind 2013年

是的,someUser ALL=(root)NOPASSWD:/path/to/somethingControllingWiFi如果确实是这样,那一定是我假定的形式。
fpghost

它肯定是:) ..
Rinzwind

Answers:


14

我在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>

下面的几行应该是这样的:

<allow_active>auth_admin_keep</allow_active>

更改为:

<allow_active>yes</allow_active>

保存文件并重新启动计算机。


请参阅下面的@harlemsquirrel的答案,这将使打包权限(例如deb包)更加容易。同样,上述方法也容易被更新等重置,因为您正在编辑由dpkg管理的文件。
vidstige'8

1
可靠的建议,但是您应该只通过sudo service network-manager restart重新启动网络。
老虎钳

4

如何解决错误:系统策略阻止所有用户的网络设置的修改

上面的答案缺少关键的一步,因此我将其包括在这里。:)

这适用于Ubuntu 14.04 LTS和16.04 LTS

  1. 开放终端

  2. su -
    
  3. 键入以下内容:

    nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  4. 在文件末尾,找到标有以下内容的部分:

    <action id="org.freedesktop.NetworkManager.settings.modify.system">
    
  5. org.freedesktop.NetworkManager.settings.modify.system部分的底部,找到以下代码行:

    <allow_active>auth_admin_keep</allow_active>
    
  6. 将此行更改为如下:

    <allow_active>yes</allow_active>
    
  7. 使用以下命令保存文件:

    ^X
    
  8. 回答 “保存修改后的缓冲区(回答“否”会破坏更改)?” 通过键入

    Y
    
  9. 在出现以下提示时,按Enter键

    File Name to Write: /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  10. 重新启动

:)


3

您也可以为此创建本地策略

[让用户瞳孔修改网络的系统设置]
身份= unix用户:学生
Action = org.freedesktop.NetworkManager.settings.modify.system
ResultAny =否
ResultInactive =否
ResultActive =是

在一个名为的文件中/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


这是正确的解决方案
vidstige

2

这并不是我真正希望的解决方法,但是我发现的一种解决方法是禁用NetworkManager全部禁用,而是使用Wicd

NetworkManager在启动时首先停止运行:

sudo gedit /etc/NetworkManager/NetworkManager.conf

然后#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  

现在可以使用了Wicd,似乎不需要密码提示。


0

您可以编辑系统配置文件,但这是蛮力的。首先,根据经验,配置位于/etc/usr/var或或其他任何位置。HarlemSquirrel解释了如何对默认策略进行适当的更改。/usr由于系统软件包提供了这些文件,因此,编辑这些文件下的内容肯定会早晚浮出水面,这些文件最终将被更新/替换。

但是更大的问题是,至少从18.04开始,这些更改是完全不必要的。这是一个“您认为错误”的问题。实际上,这是NM applet的可用性问题,但是无论如何。看一下/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>

意味着用户无法创建连接,对吗?错误!进一步看:

  <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>

如您所见,NetworkManager支持用户和系统连接的概念。问题是,小程序默认情况下会创建系统连接。因此,当您打开托盘上的applet并单击Select Network,然后选择要连接的applet时,它会要求一个sudo用户,因为仅允许管理员创建系统连接。

但是,如果您打开“ 设置”应用,转到Wi-Fi并单击所需的网络,则无需管理员密码即可轻松进行连接。在公园里散步。

但是,为什么applet想要默认情况下创建系统连接这超出了我的范围,尤其是因为您以后可以随时将用户连接建立为系统。它是连接属性下的“可供其他用户使用”选项,当您检查并单击Apply时,它将立即要求输入sudo密码。我将尝试找到一种方法,使小程序默认情况下创建用户连接,如果我发现了,我将更新此答案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.