Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
policykit [Le 17/02/2010, 18:45]
YoBoY déplacé de http://doc.ubuntu-fr.org/policy-kit
policykit [Le 05/08/2023, 15:08] (Version actuelle)
Coeur Noir [Exemples]
Ligne 1: Ligne 1:
-{{tag>karmic ​système sécurité}}+{{tag>Xenial Bionic ​système sécurité ​sudo}}
 ---- ----
-====== ​PolicyKit ​: Gestion des droits des utilisateurs ======+====== ​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.
  
-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 =====
  
-On peut voir l'​intégration de PolicyKit dans le bouton "​déverrouiller"​ de nombreuses applications de configuration sous ubuntu, ou dans l'étape "​installation" ​de la logithèque ubuntu.+Certains logicielscomme [[:​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**.
  
-===== Créer ou modifier ​des "​policy" ​=====+**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).
  
-<note warning>​Attentionl'outil "​policykit-gnome" ​n'est pas compatible avec l'implémentation ​de PolicyKit présente dans karmic ​(polkit).</​note>​+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).
  
-Pour gérer les règles il faut donc [[:​tutoriel:​comment_modifier_un_fichier|éditer les fichiers]] de configuration à la main.+==== Exemples ==== 
 + 
 +Parmi les programmes capables d'​utiliser PolKit, on peut citer : 
 +  * [[:​gnome-packagekit|GNOME Paquets]] 
 +  * [[:​gnome-software|GNOME Logiciels]] 
 +  * [[:​gnome-disk-utility|GNOME Disques]] 
 +  * [[gparted|GParted : éditeur de partitions]] 
 +  * [[:​flatpak]] 
 +  * [[:​plasma-discover|Plasma Discover]] 
 +  * [[:​Nautilus]] 
 +  * Les paramètres système (concernant l'​ajout d'​utilisateur par exemple) 
 +  * 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 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. 
 + 
 +===== Installation ===== 
 + 
 +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 ===== 
 + 
 +==== 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]]. 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.
  
-Ceux-ci sont présent dans : 
-  /​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]] : 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 ===== 
-Exemple de fichier de configuration pour autoriser un utilisateur non admin à utiliser la logithèque : 
-  /​var/​lib/​polkit-1/​localauthority/​50-local.d/​permission-software-center.pkla 
  
-  ​[Grant for software-center] +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 passeA configurer avec prudence pour des raisons de sécurité !
-  Identity=unix-user:​nom_de_l_utilisateur +
-  Action=org.debian.apt.install-packages +
-  ResultAny=no +
-  ResultInactive=no +
-  ResultActive=auth_self_keep+
  
-(merci didrocks ​:)).+ 
 +==== 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 ===== 
 + 
 +<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.</​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 ===== 
 + 
 +  * **(en)** [[https://​www.freedesktop.org/​software/​polkit/​docs/​latest/​polkit.8.html|Polkit]] 
 +  * [[:​securite|Le portail "​Sécurité"​ du wiki]]
  
 ---- ----
-contributions: [[utilisateurs:​Tshirtman]]+ 
 +//​Contributeurs ​: [[utilisateurs:​Tshirtman]], [[utilisateurs:​l_africain|L'​Africain]],​ [[utilisateurs/​roschan]],​ 
 +, ...//
  • policykit.1266428723.txt.gz
  • Dernière modification: Le 18/04/2011, 14:52
  • (modification externe)