Entfernen Sie das sudo-Passwort, wenn Sie eine Verbindung zu einem * neuen * WiFi-Netzwerk herstellen


12

Wenn mein Benutzer ohne Administratorberechtigung versucht, eine Verbindung zu einem neuen WLAN-Netzwerk herzustellen (z. B. in einem Café), fordert NetworkManager zur Eingabe des Kennworts des Benutzers mit Administratorberechtigung auf. Gibt es eine Möglichkeit, dies zu deaktivieren und es dem Benutzer ohne Administratorrechte zu ermöglichen, eine Verbindung zu einem beliebigen Wifi-Netzwerk herzustellen?

BEARBEITEN: Nur zur Verdeutlichung, ich meine wirklich ein neues WiFi-Netzwerk, mit dem der Computer zuvor noch nie eine Verbindung hergestellt hat. Wenn Sie also bei einer bestehenden Verbindung auf "Für alle Benutzer verfügbar" klicken, ist dies keine Lösung so oft sie möchten, wieder mit dem Heimnetzwerk verbinden.


/etc/sudoersist die zu bearbeitende Datei, daher werden keine Passwörter abgefragt
Rinzwind

Ich habe es visudozuvor verwendet, um dem Benutzer ohne Administratorrechte zu erlauben, einige Dinge zu tun (wie sudo apt-get upatezum Beispiel), aber ich bin nicht sicher, was ich dort einfügen muss, um zu verhindern, dass er beim Herstellen einer Verbindung zu einem neuen WLAN-Netzwerk nach einem Passwort gefragt wird
fpghost

ha du hast mich da Ich hätte eine Antwort gemacht, wenn ich das aus dem Gedächtnis gewusst hätte (etwas gesucht, aber noch nicht gefunden: D)
Rinzwind

Ja, muss etwas von der Form sein, die someUser ALL=(root)NOPASSWD:/path/to/somethingControllingWiFiich vermute, wenn dies tatsächlich der richtige Weg ist.
fpghost

Es ist sicher :) ..
Rinzwind

Antworten:


14

Ich fand Erfolg mit der folgenden Lösung in Ubuntu 13.04:

Öffnen Sie /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policymit root / sudo-Berechtigungen und suchen Sie nach der folgenden Zeile:

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

Ein paar Zeilen darunter sollten so lauten:

<allow_active>auth_admin_keep</allow_active>

Ändern Sie es in:

<allow_active>yes</allow_active>

Speichern Sie die Datei und starten Sie Ihren Computer neu.


Wenn Sie die Antwort von @harlemsquirrel unten sehen, wird es viel einfacher sein, die Erlaubnis in ein Deb-Paket zu packen. Der oben beschriebene Ansatz kann auch durch Aktualisierungen usw. zurückgesetzt werden, da Sie eine von dpkg verwaltete Datei bearbeiten.
Vidstige

1
Solider Rat, aber Sie sollten das Netzwerk einfach über sudo service network-manager restart neu starten.
Vise

4

So beheben Sie den Fehler: Die Systemrichtlinie verhindert das Ändern der Netzwerkeinstellungen für alle Benutzer

In der obigen Antwort fehlt ein kritischer Schritt, daher werde ich ihn hier einfügen. :)

Dies funktioniert in Ubuntu 14.04 LTS und 16.04 LTS

  1. Öffnen Sie das Terminal

  2. su zu rooten

    su -
    
  3. Geben Sie Folgendes ein:

    nano /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
    
  4. Suchen Sie gegen Ende der Datei den Abschnitt mit der Bezeichnung:

    <action id="org.freedesktop.NetworkManager.settings.modify.system">
    
  5. Am unteren Rand des org.freedesktop.NetworkManager.settings.modify.system Abschnitt, finden Sie die folgende Codezeile:

    <allow_active>auth_admin_keep</allow_active>
    
  6. Ändern Sie diese Zeile wie folgt:

    <allow_active>yes</allow_active>
    
  7. Speichern Sie die Datei mit:

    ^X
    
  8. Antwort "Geänderten Puffer speichern (ANTWORT" Nein "ZERSTÖRT ÄNDERUNGEN)?" durch Eingabe :

    Y
    
  9. Drücken Sie die Eingabetaste, wenn Sie dazu aufgefordert werden mit:

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

:)


3

Sie können hierfür auch eine lokale Richtlinie erstellen

[Lassen Sie den Benutzer die Systemeinstellungen für das Netzwerk ändern]
Identität = Unix-Benutzer: Schüler
Action = org.freedesktop.NetworkManager.settings.modify.system
ResultAny = no
ResultInactive = no
ResultActive = yes

in einer Datei namens /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla.

Der Vorteil hierbei ist, dass dies ein einzelner Befehl sein kann und in einem Skript verwendet werden kann!

printf "[Benutzerschüler Systemeinstellungen für Netzwerk ändern lassen] \ nIdentity = Unix-Benutzer: 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

Referenz: Ubuntu Manpage: pklocalauthority


Dies ist die richtige Lösung
vidstige

2

Dies ist nicht wirklich die Lösung, auf die ich gehofft habe, aber eine Problemumgehung, die ich gefunden habe, besteht darin, nur NetworkManagerall-together zu deaktivieren und stattdessen zu verwenden Wicd.

Erster Stopp NetworkManagerbeim Start:

sudo gedit /etc/NetworkManager/NetworkManager.conf

dann # aus der managedLeitung. Auch # raus #start on (local-filesystems and started dbus)aus /etc/init/network-manager.conf. Dann nur um sicherzugehen

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  

Jetzt kann man einfach das WicdPasswort verwenden und es werden anscheinend keine Passwortabfragen benötigt.


0

Sie können Systemkonfigurationsdateien bearbeiten, aber das ist Brute Force. Zunächst einmal als Faustregel, Konfiguration wohnt unter /etc, nicht /usroder /varoder anderswo. HarlemSquirrel erklärte, wie die Standardrichtlinie ordnungsgemäß geändert wird. Das Bearbeiten von Dateien unter /usrwird garantiert früher oder später in die Luft jagen, da diese Dateien von Systempaketen bereitgestellt werden, die später aktualisiert / ersetzt werden.

Das größere Problem ist jedoch, dass diese Änderungen zumindest ab dem 18.04 völlig unnötig sind. Dies ist eine "Sie halten es falsch" Ausgabe. Eigentlich ist es ein Usability-Problem des NM-Applets, aber trotzdem. Schauen Sie sich an /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>

Das heißt, Benutzer können keine Verbindungen herstellen, oder? Falsch! Schau weiter:

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

Wie Sie sehen, unterstützt NetworkManager das Konzept von Benutzer- und Systemverbindungen. Das Problem ist, dass das Applet standardmäßig Systemverbindungen erstellt. Wenn Sie also das Applet in der Taskleiste öffnen und auf Netzwerk auswählen klicken und dann das Applet auswählen, zu dem Sie eine Verbindung herstellen möchten, werden Sie nach einem sudo-Benutzer gefragt, da das Erstellen von Systemverbindungen nur für Administratoren zulässig ist.

ABER wenn Sie die Einstellungen- App öffnen , zu Wi-Fi gehen und auf das gewünschte Netzwerk klicken, können Sie sich ganz einfach ohne Administratorkennwort verbinden. Im Park spazieren gehen.

Warum das Applet standardmäßig Systemverbindungen erstellen möchte, ist mir allerdings ein Rätsel, zumal Sie eine Benutzerverbindung zu einem späteren Zeitpunkt zu einem System machen können. Es ist die Option Anderen Benutzern zur Verfügung stellen unter Verbindungseigenschaften. Wenn Sie diese Option aktivieren und auf Übernehmen klicken , werden Sie sofort nach dem richtigen Sudo-Kennwort gefragt. Ich werde versuchen, eine Methode zu finden, mit der das Applet standardmäßig Benutzerverbindungen erstellt. Diese Antwort wird aktualisiert, wenn ich es herausgefunden habe.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.