Ceci est une ancienne révision du document !



PolKit : Gestion des droits des utilisateurs

PolKit (anciennement PolicyKit) est une couche de gestion d'authentification et de permissions pour gérer finement les différentes opérations permises à un utilisateur ou un groupe d'utilisateurs, avec ou sans mot de passe.

On peut voir un exemple d'intégration de PolKit dans le bouton "déverrouiller" de plusieurs parties du paramétrage du système d'Ubuntu, ou au niveau de l'étape "installation" de la logithèque Ubuntu.

Certains logiciels, comme la commande flatpak, la logithèque GNOME ou les paramètres système vous demanderont parfois automatiquement votre mot de passe pour certaines actions. Il s'agit de logiciels ayant été prévus pour supporter une élévation de privilèges par PolKit.

PolKit est un logiciel moderne actuellement privilégié par les développeurs d'environnements graphiques grâce à la sécurité qu'il fournit, en effet il fonctionne selon le principe suivant : un programme (démon) s'exécute en arrière-plan (sans fenêtre), et dispose des droits root. Les applications sont invitées à lui demander les droits nécessaires pour effectuer des opérations spécifiques.

Cela évite donc de lancer des programmes graphiques en tant que super-utilisateur, ça évite également d'utiliser sudo pour des commandes n'en ayant pas besoin ou ne le supportant pas, la sécurité est donc accrue, et moins d'actions sont requises de la part de l'utilisateur (ce sont les applications qui demandent les droits, pas l'utilisateur).

Exemples

Parmi les programmes capables d'utiliser PolKit, on peut citer :

Si votre compte est paramétré correctement, l'action demandée pourra alors s'effectuer sans problème (sinon, référez-vous à ceci ou ceci).

L'exemple de Nautilus

À partir d'Ubuntu 17.10, dans l'explorateur de fichiers Nautilus, on peut faire précéder l'adresse (accessible en faisant "Ctrl L") par le préfixe admin:/// (exemple : admin:////usr/share/applications/), le mot de passe sera alors demandé, et l'emplacement en question sera ouvert avec les droits d'administration. Vous pourrez notamment y modifier des fichiers avec gedit.

Pourtant, remarquez que Nautilus conserve la configuration de l'utilisateur courant (signets, thèmes, …) : PolKit agit comme un filtre très précis, qui ne prend à root que ses privilèges de lecture et d'écriture dans les dossiers, sans prendre sa configuration.

Le paquet qui gère PolKit est policykit-1, il est déjà installé par défaut sur le système.

Utiliser polkit dans un terminal

Ceci fonctionne dans un terminal ouvert au sein d'un environnement graphique. Ça ne fonctionne pas en mode console !

En faisant précéder une commande par pkexec, on peut lancer une commande avec des privilèges élevés. Exemple :

pkexec apt update
Pour qu'un programme "sache" nativement s'exécuter via polkit, il est préférable qu'il ait été "conçu pour ça" par les développeurs (voir ci-dessous les "actions"), et il est souhaitable que des policy adaptées existent.

Tous les programmes ne fonctionneront pas aussi facilement, et notamment les programmes graphiques.

Créer ou modifier des "policy"

Pour gérer les règles il faut donc éditer les fichiers de configuration à la main avec les droits d'administration présent dans le dossier /var/lib/polkit-1/.

La documentation vous aidant à écrire les jolies règles personnalisées pour donner "juste ce qu'il faut" de droits à vos utilisateurs, tapez dans un terminal :

man pklocalauthority

Ou consultez la documentation en ligne

Exemple

Exemple de fichier de configuration pour autoriser un utilisateur non admin à utiliser la logithèque ou apt : /var/lib/polkit-1/localauthority/50-local.d/permission-software-center.pkla

  [Grant for software-center]
  Identity=unix-user:nom_de_l_utilisateur
  Action=org.debian.apt.install-packages
  ResultAny=no
  ResultInactive=no
  ResultActive=auth_self_keep

Pour connaître le contenu de la ligne Action, reportez-vous au dossier /usr/share/polkit-1/actions/ qui contient toutes les actions nécessitant les droits d'utilisateurs.

Polkit (en).


Contributeurs : Tshirtman, L'Afrcain , …

  • policykit.1508673896.txt.gz
  • Dernière modification: Le 22/10/2017, 14:04
  • par L'Africain