| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| policykit [Le 10/10/2021, 13:00] – [Installation] Testé en install mini et en tentant de le supprimer via Synaptic. Le supprimer n’empêche pas le système de fonctionner mais installe plein d'autres paquets en compensation 86.215.34.61 | policykit [Le 05/08/2023, 15:08] (Version actuelle) – [Exemples] Coeur Noir |
|---|
| 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. |
| |
| === 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. |
| ===== 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 |
| |
| | 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]] : |
| |
| |
| | 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 ===== |
| ---- | ---- |
| |
| //Contributeurs : [[utilisateurs:Tshirtman]], [[utilisateurs:l_africain|L'Africain]], [[utilisateurs/roschan]], | //Contributeurs : [[utilisateurs:Tshirtman]], [[utilisateurs:l_africain|L'Africain]], [[utilisateurs/roschan]], |
| , ...// | , ...// |