Elimine la contraseña de sudo al conectarse a * nueva * red WiFi

12

Entonces, cuando mi usuario no administrador intenta conectarse a una nueva red WiFi (por ejemplo, en un café, por ejemplo) NetworkManager solicita la contraseña del usuario administrador. ¿Hay alguna manera de desactivar esto y permitir que el usuario no administrador se conecte a la red Wifi que desee?

EDITAR: solo para aclarar, realmente me refiero a una nueva red WiFi nunca conectada antes por la computadora, por lo que hacer clic en 'Disponible para todos los usuarios' en una conexión establecida existente no resolverá el problema, ya que actualmente no hay problema con el usuario no administrador reconectando tantas veces como quiera a la red doméstica.

fpghost
fuente
/etc/sudoerses el archivo a editar para que no solicite contraseñas: help.ubuntu.com/community/Sudoers
Rinzwind
Lo he usado visudoantes para permitir que el usuario no administrador haga algunas cosas (como sudo apt-get upatepor ejemplo), pero no estoy seguro de lo que tendría que poner allí para evitar que se le pida una contraseña para conectarse a una nueva red wifi
fpghost
ja me tienes allí. Hubiera respondido si lo supiera de memoria (he estado buscando un poco pero aún no lo he encontrado: D)
Rinzwind
Sí, debe ser algo de la forma someUser ALL=(root)NOPASSWD:/path/to/somethingControllingWiFique presumo, si este es realmente el camino a seguir.
fpghost
Seguro que es :) ..
Rinzwind

Respuestas:

14

Encontré el éxito con la siguiente solución en Ubuntu 13.04:

Abra /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policycon privilegios de root / sudo y busque la siguiente línea:

<message>System policy prevents modification of network settings for all users</message>

Algunas líneas debajo de eso deberían ser esto:

<allow_active>auth_admin_keep</allow_active>

Cámbielo a:

<allow_active>yes</allow_active>

Guarde el archivo y reinicie su computadora.

Kyle Spencer
fuente
vea el golpe de respuesta de @harlemsquirrel a continuación, hará que sea mucho más fácil empacar el permiso dentro, por ejemplo, un paquete deb. Además, el enfoque anterior es susceptible de restablecerse mediante actualizaciones, etc., porque está editando un archivo administrado por dpkg.
vidstige
1
Consejo sólido, pero solo debe reiniciar la red a través de sudo service network-manager restart.
tornillo de banco
4

Cómo resolver el error: la política del sistema impide la modificación de la configuración de red para todos los usuarios

Falta un paso crítico en una respuesta anterior, por lo que la incluyo aquí. :)

Esto funciona en Ubuntu 14.04 LTS y 16.04 LTS

  1. Terminal abierta

  2. su a la raíz

    su -
    
  3. Escriba lo siguiente:

    nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  4. Hacia el final del archivo, busque la sección etiquetada:

    <action id="org.freedesktop.NetworkManager.settings.modify.system">
    
  5. En la parte inferior de la sección org.freedesktop.NetworkManager.settings.modify.system , busque la siguiente línea de código:

    <allow_active>auth_admin_keep</allow_active>
    
  6. Cambio esta línea para leer como sigue:

    <allow_active>yes</allow_active>
    
  7. Salvar el archivo usando:

    ^X
    
  8. Responda "Guardar búfer modificado (RESPUESTA" No "DESTRUIRÁ LOS CAMBIOS)?" por Typing :

    Y
    
  9. Presione enter cuando se te solicite con:

    File Name to Write: /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  10. Reiniciar .

:)

bu11etpr00f
fuente
3

También puede crear una política local para esto

[Permita que el alumno modifique la configuración del sistema para la red]
Identidad = usuario unix: alumno
Acción = org.freedesktop.NetworkManager.settings.modify.system
ResultAny = no
ResultInactive = no
ResultActive = yes

en un archivo llamado /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla.

¡La ventaja aquí es que puede ser un solo comando y puede usarse en un script!

printf "[Permitir que el alumno modifique la configuración del sistema para la red] \ 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

Referencia: Ubuntu Manpage: pklocalauthority

Harlem Ardilla
fuente
esta es la solución correcta
vidstige
2

Esta no es realmente la solución que esperaba, pero una solución que he encontrado es deshabilitar NetworkManagertodo junto y, en su lugar, usarlo Wicd.

Primera parada NetworkManagerde la ejecución al inicio:

sudo gedit /etc/NetworkManager/NetworkManager.conf

luego # fuera de la managedlínea. También # fuera #start on (local-filesystems and started dbus)de /etc/init/network-manager.conf. Entonces solo para asegurarme el doble

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  

Ahora solo puede usar Wicdy no se necesitan indicaciones de contraseña, parece.

fpghost
fuente
0

Puede editar archivos de configuración del sistema, pero eso es fuerza bruta. En primer lugar, como regla general, reside en virtud de configuración /etc, no /usro /varo en cualquier otro lugar. HarlemSquirrel explicó cómo hacer un cambio adecuado a la política predeterminada. /usrSe garantiza que la edición de archivos debajo explotará en su cara tarde o temprano, ya que esos archivos son proporcionados por paquetes del sistema, que se actualizarán / reemplazarán eventualmente.

Pero el mayor problema es que estos cambios son completamente innecesarios, al menos a partir de 18.04. Este es un problema de "lo estás sosteniendo mal". En realidad, es un problema de usabilidad por parte del applet de NM, pero de todos modos. Echa un vistazo a /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>

Lo que significa que los usuarios no pueden crear conexiones, ¿verdad? ¡Incorrecto! Mira más allá:

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

Como puede ver, NetworkManager admite el concepto de conexiones de usuario y sistema. El problema es que el applet crea conexiones del sistema por defecto. Entonces, cuando abre el applet en la bandeja y hace clic en Seleccionar red , luego selecciona el que desea conectarse, le pide un usuario de sudo, porque la creación de conexiones del sistema solo está permitida para los administradores.

PERO si abre la aplicación Configuración , vaya a Wi-Fi y haga clic en la red deseada, le permitirá conectarse fácilmente sin contraseña de administrador. Caminar en el parque.

Sin embargo, el motivo por el cual el applet quiere crear conexiones del sistema por defecto está fuera de mi alcance, especialmente porque puede hacer que una conexión de usuario sea un sistema en cualquier momento posterior. Es la opción Poner a disposición de otros usuarios en las propiedades de conexión, y cuando verifica eso y hace clic en Aplicar , solicitará inmediatamente la contraseña de sudo, como debería. Trataré de encontrar una manera de hacer que el applet cree conexiones de usuario de forma predeterminada, actualizaré esta respuesta si lo descubro.

bviktor
fuente