Sie können eine lokale Richtlinie für einen oder mehrere Benutzer erstellen.
Erstellen Sie das Dokument, in dem die Einstellungen gespeichert werden ...
Berühren Sie /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla
Fügen Sie eine oder mehrere Richtlinien hinzu ...
[Lassen Sie foo die Systemeinstellungen für das Netzwerk ändern]
Identität = Unix-Benutzer: foo
Action = org.freedesktop.NetworkManager.settings.modify.system
ErgebnisAny = nein
ResultInactive = no
ResultActive = ja
[Erlaube foo nicht, das Netzwerk zu aktivieren / deaktivieren]
Identität = Unix-Benutzer: foo
Action = org.freedesktop.NetworkManager.settings.enable-disable-network
ErgebnisAny = nein
ResultInactive = no
ResultActive = no
Der Schlüssel ist das ResultActive
Element, das auf yes, no, auth_admin oder auth_admin_keep gesetzt werden kann, wobei für die beiden letzteren das Kennwort eines anderen Benutzers mit sudo-Berechtigungen erforderlich ist.
Das Action
Element definiert, welche Aktion zulässig / nicht zulässig ist oder eine Authentifizierung mit einem Kennwort erfordert. Es gibt Optionen wie das org.freedesktop.NetworkManager.enable-disable-network
Umschalten des Netzwerks als aktiviert / deaktiviert. Sie können mehr Optionen in der /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy
Datei sehen, suchen Sie einfach nach etwas wie <action id="org.freedesktop.NetworkManager.enable-disable-network">
und lesen Sie die Beschreibung.
Sie können alle Werte auch mit dem *
Platzhalter festlegen ...
[Verhindern Sie, dass foo alle Netzwerkstatus und -einstellungen außer mit dem Administratorkennwort ändert]
Identität = Unix-Benutzer: foo
Action = org.freedesktop.NetworkManager. *
ErgebnisAny = nein
ResultInactive = no
ResultActive = auth_admin_keep
Dies erfordert ein Passwort, um Änderungen an den Netzwerkeinstellungen oder am Status vorzunehmen.
Sie können dies in einem einzigen Befehl tun, der in ein Skript aufgenommen werden kann ...
sudo su -c 'printf "[Verhindert, dass foo alle Netzwerkzustände und -einstellungen ändert] \ nIdentity = Unix-Benutzer: foo \ nAction = org.freedesktop.NetworkManager. * \ nResultAny = no \ nResultInactive = no \ nResultActive = auth_admin"> /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla '
Verweise: