Rimuovi la password sudo quando ti connetti a * nuova * rete WiFi


12

Quindi attualmente quando il mio utente non amministratore tenta di connettersi a una nuova rete WiFi (ad esempio in un bar dire) NetworkManager richiede la password dell'utente amministratore. C'è un modo per disattivarlo e per consentire all'utente non amministratore di connettersi a qualsiasi rete Wifi che gli piace?

EDIT: solo per chiarire, intendo davvero una nuova rete WiFi mai connessa prima dal computer, quindi facendo clic su "Disponibile per tutti gli utenti" su una connessione stabilita esistente non risolverà la questione, poiché attualmente nessun problema con l'utente non amministratore ricollegarsi tutte le volte che vogliono sulla rete domestica.


/etc/sudoersè il file da modificare, quindi non richiede password: help.ubuntu.com/community/Sudoers
Rinzwind

Ho usato visudoprima per consentire all'utente non amministratore di fare alcune cose (come sudo apt-get upatead es.) Ma non sono sicuro di cosa avrei dovuto inserire per impedire che gli venisse chiesta una password per la connessione a una nuova rete wifi
fpghost,

ah mi hai portato lì. Avrei dato una risposta se lo avessi saputo dalla memoria (cercavo un po 'ma non l'ho ancora trovato: D)
Rinzwind

sì, deve essere qualcosa della forma someUser ALL=(root)NOPASSWD:/path/to/somethingControllingWiFiche presumo, se questa è davvero la strada da percorrere.
fpghost,

Lo è di sicuro :) ..
Rinzwind il

Risposte:


14

Ho trovato successo con la seguente soluzione in Ubuntu 13.04:

Apri /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policycon i privilegi di root / sudo e cerca la seguente riga:

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

Di seguito alcune righe che dovrebbero essere queste:

<allow_active>auth_admin_keep</allow_active>

Modificalo in:

<allow_active>yes</allow_active>

Salvare il file e riavviare il computer.


vedere la risposta di @harlemsquirrel di seguito, renderà molto più semplice impacchettare l'autorizzazione all'interno di un pacchetto deb. Anche l'approccio sopra è suscettibile di essere ripristinato da aggiornamenti, ecc., Poiché la modifica di un file gestito da dpkg.
vidstige,

1
Un buon consiglio, ma dovresti semplicemente riavviare la rete tramite il servizio sudo riavvio del gestore di rete.
morsa

4

Come risolvere l'errore: i criteri di sistema impediscono la modifica delle impostazioni di rete per tutti gli utenti

Manca un passaggio critico da una risposta sopra, quindi la includo qui. :)

Funziona con Ubuntu 14.04 LTS e 16.04 LTS

  1. Terminale aperto

  2. su alla radice

    su -
    
  3. Digita quanto segue:

    nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  4. Verso la fine del file, trova la sezione etichettata:

    <action id="org.freedesktop.NetworkManager.settings.modify.system">
    
  5. Nella parte inferiore della sezione org.freedesktop.NetworkManager.settings.modify.system , individuare la seguente riga di codice:

    <allow_active>auth_admin_keep</allow_active>
    
  6. Modificare questa riga per leggere come segue:

    <allow_active>yes</allow_active>
    
  7. Salva il file usando:

    ^X
    
  8. Risposta "Salva buffer modificato (RISPOSTA" No "DISTRUGGERA 'I CAMBIAMENTI)?" by Typing :

    Y
    
  9. Premi Invio quando ti viene richiesto con:

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

:)


3

È inoltre possibile creare una politica locale per questo

[Consenti all'utente alunno di modificare le impostazioni di sistema per la rete]
Identità = unix-user: alunno
Action = org.freedesktop.NetworkManager.settings.modify.system
ResultAny = no
ResultInactive = no
ResultActive = yes

in un file chiamato /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla.

Il vantaggio qui è che può essere un singolo comando e utilizzabile in uno script!

printf "[Consenti all'utente alunno di modificare le impostazioni di sistema per la rete] \ 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

Riferimento: Manpage di Ubuntu: pklocalauthority


questa è la soluzione corretta
vidstige

2

Questa non è davvero la soluzione che speravo, ma una soluzione che ho trovato è solo quella di disabilitare NetworkManagertutti insieme e invece usare Wicd.

Primo stop NetworkManagerda eseguire all'avvio:

sudo gedit /etc/NetworkManager/NetworkManager.conf

quindi # fuori dalla managedlinea. Anche # fuori #start on (local-filesystems and started dbus)da /etc/init/network-manager.conf. Quindi, solo per esserne sicuri

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  

Ora può solo usare Wicde non sembra necessaria alcuna richiesta di password.


0

Puoi modificare i file di configurazione del sistema, ma questa è forza bruta. Prima di tutto, come regola generale, la configurazione risiede sotto /etc, non /usro /varo altrove. HarlemSquirrel ha spiegato come apportare una modifica adeguata alla politica predefinita. La modifica dei file sotto /usrè garantita prima o poi che ti esploderà in faccia, poiché quei file sono forniti dai pacchetti di sistema, che verranno aggiornati / sostituiti alla fine.

Ma il problema maggiore è che questi cambiamenti sono completamente inutili, almeno dal 18.04. Questo è un problema "lo stai sbagliando". In realtà, è un problema di usabilità da parte dell'applet NM, ma comunque. Dai un'occhiata 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>

Significa che gli utenti non possono creare connessioni, giusto? Sbagliato! Guarda oltre:

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

Come puoi vedere, NetworkManager supporta il concetto di connessioni utente e di sistema. Il problema è che l'applet crea connessioni di sistema per impostazione predefinita. Pertanto, quando si apre l'applet sulla barra delle applicazioni e si fa clic su Seleziona rete , quindi si seleziona quello a cui si desidera connettersi, viene richiesto un utente sudo, poiché la creazione di connessioni di sistema è consentita solo agli amministratori.

MA se apri l' app Impostazioni , vai su Wi-Fi e fai clic sulla rete desiderata, ti permetterà facilmente di connetterti senza la password dell'amministratore. Camminare nel Parco.

Il motivo per cui l'applet vuole creare connessioni di sistema per impostazione predefinita è al di là di me, soprattutto perché è possibile rendere una connessione utente un sistema in qualsiasi momento successivo. È l' opzione Rendi disponibile ad altri utenti sotto le proprietà della connessione e quando lo controlli e fai clic su Applica , ti chiederà immediatamente la password sudo, come dovrebbe. Proverò a trovare un modo per fare in modo che l'applet crei connessioni utente per impostazione predefinita, aggiornerò questa risposta se l'ho capito.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.