Les deux révisions précédentesRévision précédente | |
policykit [Le 03/06/2019, 16:55] – [PolKit : Gestion des droits des utilisateurs] 78.250.62.207 | policykit [Le 03/06/2019, 17:24] (Version actuelle) – ancienne révision (Le 23/10/2017, 11:57) restaurée 193.250.138.66 |
---|
| {{tag>Xenial Bionic système sécurité sudo}} |
| ---- |
| ====== 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. |
| |
| ===== Fonctionnement de base ===== |
| |
| Certains logiciels, comme [[:flatpak|la commande flatpak]], la [[:gnome-software|logithèque]] ou les [[:gnome-control-center|paramètres système]] vous demanderont parfois automatiquement votre mot de passe pour certaines actions. Il s'agit de logiciels intégrant 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. \\ PolKit saura quoi répondre en fonction des "policy" paramétrées (des configurations qui définissent qui peut faire quoi, et quel logiciel a besoin de quels privilèges). |
| |
| 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 : |
| * [[:gnome-packagekit|GNOME Paquets]] |
| * [[:flatpak]] |
| * [[:gnome-software|GNOME Logiciels]] |
| * [[:plasma-discover|Plasma Discover]] |
| * [[:Nautilus]] |
| * Les paramètres système (concernant l'ajout d'utilisateur par exemple) |
| * [[:gnome-disk-utility|GNOME Disques]] |
| * etc. |
| |
| Si votre compte est paramétré correctement, l'action demandée pourra alors s'effectuer sans problème (sinon, référez-vous à [[:sudo#ajouter_les_privileges_a_des_utilisateurs|ceci]] ou **[[#utilisation|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. |
| |
| ===== Installation ===== |
| |
| Le paquet qui installe PolKit est [[apt>policykit-1]], **il est déjà installé** par défaut sur le système. |
| |
| ===== Utilisation ===== |
| |
| ==== Créer ou modifier des "policy" ==== |
| |
| Pour gérer les règles il faut donc [[:tutoriel:comment_modifier_un_fichier|éditer les fichiers]] de configuration à la main avec [[:sudo|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 [[http://hal.freedesktop.org/docs/polkit/manpages.html|documentation en ligne]] |
| |
| ==== Exemple de policy ==== |
| |
| Exemple de fichier de configuration pour autoriser un utilisateur non admin à utiliser la [[software-center|logithèque ou apt]] : **/var/lib/polkit-1/localauthority/50-local.d/permission-software-center.pkla** |
| <file> |
| [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</file> |
| |
| 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. |
| |
| ===== La commande pkexec ===== |
| |
| <note important>Ceci fonctionne dans un terminal ouvert au sein d'un environnement graphique. Ça ne fonctionne pas en mode console !</note> |
| |
| En faisant précéder une commande par ''pkexec'', on peut lancer une commande avec des privilèges élevés. Exemple : |
| <code>pkexec apt update</code> |
| |
| Une boîte de dialogue apparaît alors pour demander votre mot de passe ; après validation, la commande s'exécute. |
| |
| <note>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-dessus les "[[#exemple de policy|actions]]"), et il est souhaitable que des [[#utilisation|policy]] adaptées existent. |
| |
| Tous les programmes ne fonctionneront pas aussi facilement, et notamment les programmes graphiques. |
| </note> |
| |
| ===== Voir aussi ===== |
| |
| * **(en)** [[https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html|Polkit]] |
| * [[:securite|Le portail "Sécurité" du wiki]] |
| |
| ---- |
| |
| //Contributeurs : [[utilisateurs:Tshirtman]], [[utilisateurs:l_africain|L'Africain]], [[utilisateurs/roschan]], |
| , ...// |