Supprimer le mot de passe sudo lors de la connexion au * nouveau * réseau WiFi


12

Donc, actuellement, lorsque mon utilisateur non administrateur essaie de se connecter à un nouveau réseau WiFi (par exemple dans un café, par exemple), NetworkManager demande le mot de passe de l'utilisateur administrateur. Existe-t-il un moyen de désactiver cela et de permettre à l'utilisateur non administrateur de se connecter au réseau Wifi qu'il souhaite?

EDIT: juste pour clarifier, je veux vraiment dire un nouveau réseau WiFi jamais connecté auparavant par l'ordinateur, donc cliquer sur `` Disponible pour tous les utilisateurs '' sur une connexion établie existante ne résoudra pas le problème - comme actuellement aucun problème avec l'utilisateur non administrateur se reconnecter autant de fois qu'ils le souhaitent au réseau domestique.


/etc/sudoersest le fichier à modifier pour qu'il ne demande pas de mots de passe: help.ubuntu.com/community/Sudoers
Rinzwind

J'ai utilisé visudoauparavant pour permettre à l'utilisateur non administrateur de faire quelques choses (comme sudo apt-get upatepar exemple) mais je ne sais pas ce que je devrais y mettre pour éviter qu'on lui demande un mot de passe pour se connecter à un nouveau réseau wifi
fpghost

ha tu m'as là. J'aurais fait une réponse si je l'avais su de mémoire (en cherchant un peu mais je ne l'ai pas encore trouvé: D)
Rinzwind

oui, ça doit être quelque chose de la forme que someUser ALL=(root)NOPASSWD:/path/to/somethingControllingWiFije présume, si c'est bien la voie à suivre.
fpghost

C'est sûr :) ..
Rinzwind

Réponses:


14

J'ai trouvé le succès avec la solution suivante dans Ubuntu 13.04:

Ouvrez /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policyavec les privilèges root / sudo et recherchez la ligne suivante:

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

Voici quelques lignes ci-dessous:

<allow_active>auth_admin_keep</allow_active>

Changez-le en:

<allow_active>yes</allow_active>

Enregistrez le fichier et redémarrez votre ordinateur.


voir le coup de réponse de @harlemsquirrel ci-dessous, il sera beaucoup plus facile de regrouper l'autorisation à l'intérieur, par exemple, d'un paquet deb. L'approche ci-dessus est également susceptible d'être réinitialisée par des mises à jour, etc., car vous modifiez un fichier géré par dpkg.
vidstige

1
De bons conseils, mais vous devez simplement redémarrer le réseau via le redémarrage du gestionnaire de réseau du service sudo.
étau

4

Comment résoudre l'erreur: la stratégie système empêche la modification des paramètres réseau pour tous les utilisateurs

Il manque une étape critique dans la réponse ci-dessus, donc je l'inclus ici. :)

Cela fonctionne dans Ubuntu 14.04 LTS et 16.04 LTS

  1. Terminal ouvert

  2. su pour rooter

    su -
    
  3. Tapez ce qui suit:

    nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  4. Vers la fin du fichier, recherchez la section intitulée:

    <action id="org.freedesktop.NetworkManager.settings.modify.system">
    
  5. Au bas de la org.freedesktop.NetworkManager.settings.modify.system section, recherchez la ligne de code suivante:

    <allow_active>auth_admin_keep</allow_active>
    
  6. Modifiez cette ligne pour lire comme suit:

    <allow_active>yes</allow_active>
    
  7. Enregistrez le fichier en utilisant:

    ^X
    
  8. Répondre "Enregistrer le tampon modifié (RÉPONDRE" Non "DÉTRUIRA LES CHANGEMENTS)?" en tapant :

    Y
    
  9. Appuyez sur Entrée lorsque vous y êtes invité:

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

:)


3

Vous pouvez également créer une stratégie locale pour cette

[Laisser l'élève utilisateur modifier les paramètres système du réseau]
Identité = utilisateur unix: élève
Action = org.freedesktop.NetworkManager.settings.modify.system
ResultAny = no
ResultInactive = no
ResultActive = yes

dans un fichier appelé /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla.

L'avantage ici est qu'il peut s'agir d'une seule commande et utilisable dans un script!

printf "[Autoriser l'élève à modifier les paramètres système du réseau] \ 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

Référence: Ubuntu Manpage: pklocalauthority


c'est la bonne solution
vidstige

2

Ce n'est pas vraiment le correctif que j'espérais, mais une solution de contournement que j'ai trouvée consiste simplement à désactiver NetworkManagercomplètement et à utiliser à la place Wicd.

Premier arrêt NetworkManagerde l'exécution au démarrage:

sudo gedit /etc/NetworkManager/NetworkManager.conf

puis # hors de la managedligne. # Aussi hors #start on (local-filesystems and started dbus)de /etc/init/network-manager.conf. Alors juste pour être sûr

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  

Maintenant, vous pouvez simplement utiliser Wicdet aucune invite de mot de passe nécessaire, semble-t-il.


0

Vous pouvez modifier les fichiers de configuration du système, mais c'est la force brute. Tout d'abord, en règle générale, la configuration réside sous /etc, pas /usrou /varailleurs. HarlemSquirrel a expliqué comment apporter une modification appropriée à la stratégie par défaut. La modification des fichiers sous /usrest garantie de vous exploser tôt ou tard, car ces fichiers sont fournis par des packages système, qui seront éventuellement mis à jour / remplacés.

Mais le plus gros problème est que ces changements sont complètement inutiles, à partir du 18.04 au moins. Il s'agit d'un problème "vous vous trompez". En fait, c'est un problème d'utilisation de la part de l'applet NM, mais de toute façon. Jetez un œil à /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>

Cela signifie que les utilisateurs ne peuvent pas créer de connexions, non? Faux! Regardez plus loin:

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

Comme vous pouvez le voir, NetworkManager prend en charge le concept de connexions utilisateur et système. Le problème est que l'applet crée des connexions système par défaut. Ainsi, lorsque vous ouvrez l'applet sur la barre d'état et cliquez sur Sélectionner un réseau , puis sélectionnez celui auquel vous souhaitez vous connecter, il demande un utilisateur sudo, car la création de connexions système n'est autorisée que pour les administrateurs.

MAIS si vous ouvrez l' application Paramètres , accédez au Wi-Fi et cliquez sur le réseau souhaité, cela vous permettra facilement de vous connecter sans mot de passe administrateur. Promenade dans le parc.

La raison pour laquelle l'applet veut créer des connexions système par défaut ne me dépasse pas, d'autant plus que vous pouvez établir une connexion utilisateur un système à tout moment plus tard. Il s'agit de l' option Rendre disponible aux autres utilisateurs sous les propriétés de connexion, et lorsque vous vérifiez cela et cliquez sur Appliquer , il demandera immédiatement le mot de passe sudo, comme il se doit. J'essaierai de trouver un moyen de faire en sorte que l'applet crée des connexions utilisateur par défaut, je mettrai à jour cette réponse si je l'ai compris.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.