Comment définir la stratégie pour que les utilisateurs modifient l’état du réseau et les connexions?

Comment définir les permissions permettant aux utilisateurs de modifier les connexions et l’état du réseau? Par exemple, comment puis-je autoriser / interdire aux utilisateurs de se connecter à de nouveaux réseaux sans fil? Comment puis-je autoriser / interdire aux utilisateurs de désactiver le réseau?

Vous pouvez créer une stratégie locale pour un ou plusieurs utilisateurs.

Créez le document où les parameters vivront …

 touch /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla

Ajouter une ou plusieurs politiques …

 [Laisser foo modifier les parameters du système pour le réseau]
 Identité = utilisateur-unix: toto
 Action = org.freedesktop.NetworkManager.settings.modify.system
 ResultAny = no
 ResultInactive = no
 ResultActive = yes

 [Ne pas autoriser foo à activer / désactiver la mise en réseau]
 Identité = utilisateur-unix: toto
 Action = org.freedesktop.NetworkManager.settings.enable-disable-network
 ResultAny = no
 ResultInactive = no
 ResultActive = no

La clé est l’élément ResultActive qui peut être défini sur yes, no, auth_admin ou auth_admin_keep, les deux derniers nécessitant le mot de passe d’un autre utilisateur disposant des privilèges sudo.

L’élément Action définit quelle action sera autorisée / interdite ou nécessitera une authentification avec un mot de passe. Il existe des options telles que org.freedesktop.NetworkManager.enable-disable-network pour org.freedesktop.NetworkManager.enable-disable-network . Vous pouvez voir plus d’options dans le fichier /usr/share/polkit-1/actions/org.freedesktop.NetworkManager.policy . Il suffit de chercher quelque chose comme et lisez sa description.

Vous pouvez également définir toutes les valeurs avec le caractère générique * .

 [Empêcher foo de modifier tous les états et parameters du réseau sauf avec un mot de passe administrateur]
 Identité = utilisateur-unix: toto
 Action = org.freedesktop.NetworkManager. *
 ResultAny = no
 ResultInactive = no
 ResultActive = auth_admin_keep

Un mot de passe sera nécessaire pour TOUTE modification des parameters ou de l’état du réseau.

Vous pouvez le faire en une seule commande pouvant être incluse dans un script …

 sudo su -c 'printf "[Empêcher foo de modifier tous les états et parameters du réseau] \ nIdentity = utilisateur_unix: foo \ nAction = org.freedesktop.NetworkManager. * \ nResultAny = no \ nResultInactive = no \ nResultActive = auth_admin"> /var/lib/polkit-1/localauthority/50-local.d/10-network-manager.pkla '

Les références: