Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
policykit [Le 03/10/2022, 19:18] sangorys [Utilisation] |
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 le gestionnaire 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 Ubuntu Gnome, Mate et Xfce | + | Le paquet qui installe PolKit est [[apt>policykit-1]], **il est déjà installé** par défaut sur Ubuntu Gnome, Mate, Xfce et Cinnamon |
- | ===== Utilisation ===== | ||
Pour voir la configuration à partir d'une interface graphique, installer [[https://github.com/scarygliders/Polkit-Explorer|polkit-explorer]] | 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" ==== | ==== 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]] : | ||
Ligne 52: | Ligne 59: | ||
+ | ==== 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 ===== |