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édentes Révision précédente
Prochaine révision
Révision précédente
policykit [Le 26/09/2021, 09:34]
86.215.34.61 [Exemple de policy] Suppression contenu lié à software-center plus dans les dépôts.
policykit [Le 05/08/2023, 15:08] (Version actuelle)
Coeur Noir [Exemples]
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]]
  
  
 +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é !
 +
 +
 +==== Exemple simple ====
 +
 +=== /​etc/​polkit-1/​rules.d/​MaRegle.rules ===
 +<​code>​
 +[Allow monApplication]
 +Identity=unix-group:​sudo
 +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 59: 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 71: Ligne 119:
 ---- ----
  
-//​Contributeurs : [[utilisateurs:​Tshirtman]],​ [[utilisateurs:​l_africain|L'​Africain]],​ [[utilisateurs/​roschan]], ​+//​Contributeurs : [[utilisateurs:​Tshirtman]],​ [[utilisateurs:​l_africain|L'​Africain]],​ [[utilisateurs/​roschan]],​
 , ...// , ...//
  • policykit.1632641647.txt.gz
  • Dernière modification: Le 26/09/2021, 09:34
  • par 86.215.34.61