Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
policykit [Le 23/10/2017, 11:57] – ajout tag sudo aldianpolicykit [Le 05/08/2023, 15:08] (Version actuelle) – [Exemples] Coeur Noir
Ligne 1: Ligne 1:
-{{tag>Xenial système sécurité sudo}}+{{tag>Xenial Bionic système sécurité sudo}}
 ---- ----
 ====== PolKit : Gestion des droits des utilisateurs ====== ====== PolKit : Gestion des droits des utilisateurs ======
Ligne 17: Ligne 17:
 Parmi les programmes capables d'utiliser PolKit, on peut citer : Parmi les programmes capables d'utiliser PolKit, on peut citer :
   * [[:gnome-packagekit|GNOME Paquets]]   * [[:gnome-packagekit|GNOME Paquets]]
-  * [[:flatpak]] 
   * [[:gnome-software|GNOME Logiciels]]   * [[:gnome-software|GNOME Logiciels]]
 +  * [[:gnome-disk-utility|GNOME Disques]]
 +  * [[gparted|GParted : éditeur de partitions]]
 +  * [[:flatpak]]
   * [[:plasma-discover|Plasma Discover]]   * [[:plasma-discover|Plasma Discover]]
   * [[:Nautilus]]   * [[:Nautilus]]
   * Les paramètres système (concernant l'ajout d'utilisateur par exemple)   * Les paramètres système (concernant l'ajout d'utilisateur par exemple)
-  * [[:gnome-disk-utility|GNOME Disques]] 
   * etc.   * etc.
  
Ligne 29: Ligne 30:
 === L'exemple de Nautilus === === 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]].+À partir d'Ubuntu [[:17.10]], dans le gestionnaire de fichiers [[:Nautilus]], on peut faire précéder l'adresse (accessible en faisant "''Ctrl L''") par le préfixe <code>admin://</code> exemple : <code>admin:///usr/share/applications/</code> 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. 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.
Ligne 35: Ligne 36:
 ===== Installation ===== ===== Installation =====
  
-Le paquet qui installe PolKit est [[apt>policykit-1]], **il est déjà installé** par défaut sur le système.+Le paquet qui installe PolKit est [[apt>policykit-1]], **il est déjà installé** par défaut sur Ubuntu Gnome, Mate, Xfce et Cinnamon
  
 +Pour voir la configuration à partir d'une interface graphique, installer [[https://github.com/scarygliders/Polkit-Explorer|polkit-explorer]]
 ===== Utilisation ===== ===== Utilisation =====
  
 ==== Créer ou modifier des "policy" ==== ==== 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/**.+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]]. La configuration se fait avec des règles et des actions : 
 +  * Les Actions sont définies dans des fichiers XML .policy situés dans **/usr/share/polkit-1/actions** 
 +  * Les règles d'autorisation sont définies dans les fichiers .rules JavaScript. On les trouve à deux endroits : 
 +    * **/usr/share/polkit-1/rules.d** pour les paquets tiers peuvent utiliser (bien que peu, voire aucun, ne le fasse) 
 +    * **/etc/polkit-1/rules.d** pour la configuration locale. 
  
 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]] : 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   man pklocalauthority
  
-Ou consultez la [[http://hal.freedesktop.org/docs/polkit/manpages.html|documentation en ligne]]+Ou consultez la [[https://www.freedesktop.org/software/polkit/docs/latest/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** +La page [[https://askubuntu.com/questions/383747/how-to-configure-pkexec-to-not-ask-for-password|How to configure pkexec to not ask for password ?]] donne également un exemple intéressant de comment demander à pkexec d'arreter de demander un mot de passe. A configurer avec prudence pour des raisons de sécurité ! 
-<file+ 
-  [Grant for software-center+ 
-  Identity=unix-user:nom_de_l_utilisateur +==== Exemple simple ==== 
-  Action=org.debian.apt.install-packages + 
-  ResultAny=no +=== /etc/polkit-1/rules.d/MaRegle.rules === 
-  ResultInactive=no +<code
-  ResultActive=auth_self_keep</file+[Allow monApplication
-   +Identity=unix-group:sudo 
-Pour connaître le contenu de la ligne Actionreportez-vous au dossier **/usr/share/polkit-1/actions/** qui contient toutes les actions nécessitant les droits d'utilisateurs.+Action=org.freedesktop.policykit.exec 
 +ResultActive=yes 
 +</code> 
 + 
 + 
 +=== /usr/share/polkit-1/actions === 
 +<code> 
 + 
 +<?xml version="1.0" encoding="UTF-8"?> 
 +<!DOCTYPE policyconfig PUBLIC 
 + "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" 
 + "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> 
 +<policyconfig> 
 + 
 +  <action id="com.ubuntu.pkexec.monApplication"> 
 +    <message gettext-domain="monApplication">Authentication is required to execute actions</message> 
 +    <icon_name>configurator</icon_name> 
 +    <defaults> 
 +      <allow_any>yes</allow_any> 
 +      <allow_inactive>yes</allow_inactive> 
 +      <allow_active>yes</allow_active> 
 +    </defaults> 
 +    <annotate key="org.freedesktop.policykit.exec.path">maCommandeALaquelleJeVeuxDesAutorisationsSpeciales</annotate> 
 +    <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate
 +  </action> 
 + 
 +</policyconfig> 
 +</code> 
 + 
 +Ici, vous remplacerez monApplication et maCommandeALaquelleJeVeuxDesAutorisationsSpeciales 
 +Ex : 
 +  monApplication = gparted 
 +  maCommandeALaquelleJeVeuxDesAutorisationsSpeciales = /usr/sbin/gparted
  
 ===== La commande pkexec ===== ===== La commande pkexec =====
Ligne 70: Ligne 108:
 Une boîte de dialogue apparaît alors pour demander votre mot de passe ; après validation, la commande s'exécute. 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. +<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.</note>
- +
-Tous les programmes ne fonctionneront pas aussi facilement, et notamment les programmes graphiques. +
-</note>+
  
 +<note>Tous les programmes ne fonctionneront pas aussi facilement, et notamment les programmes graphiques. En effet il faut utiliser les variables d'environnement ''$DISPLAY'' et ''$XAUTHORITY'' : </note>
 +  pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY nom-du-programme
 ===== Voir aussi ===== ===== Voir aussi =====
  
Ligne 82: Ligne 119:
 ---- ----
  
-//Contributeurs : [[utilisateurs:Tshirtman]], [[utilisateurs:l_africain|L'Africain]], [[utilisateurs/roschan]], +//Contributeurs : [[utilisateurs:Tshirtman]], [[utilisateurs:l_africain|L'Africain]], [[utilisateurs/roschan]],
 , ...// , ...//