Polkit-123

Introduction à Polkit

Polkit est une trousse à outils pour définir et gérer les autorisations. Il est utilisé pour permettre aux processus non privilégiés de communiquer avec des processus privilégiés.

This package is known to build and work properly using an LFS 12.0 platform.

Informations sur le paquet

Dépendances de Polkit

Requises

GLib-2.76.4

Recommandées

[Note]

Note

Comme elogind utilise PAM pour enregistrer les sessions utilisateurs, il serait bien de construire Polkit avec la prise en charge de PAM pour que elogind puisse suivre les sessions Polkit.

Facultatives

GTK-Doc-1.33.2, JS-102.13.0 (peut être utilisé à la place de duktape) et dbusmock-0.29.1 (pour les tests)

Dépendances à l'exécution facultatives

Un agent d'authentification polkit pour utiliser polkit dans l'environnement graphique : polkit-kde-agent dans Plasma-5.27.7 pour KDE, l'agent construit dans gnome-shell-44.3 pour GNOME3, polkit-gnome-0.105 pour XFCE et lxpolkit dans LXSession-0.5.5 pour LXDE.

[Note]

Note

Si libxslt-1.1.38 est installé, alors docbook-xml-4.5 et docbook-xsl-nons-1.79.2 sont requis. Si vous avez installé libxslt-1.1.38, mais que vous ne voulez installer aucun des paquets DocBook mentionnés, vous devez utiliser -Dman=false dans les instructions qui suivent.

Installation de Polkit

Il doit y avoir un utilisateur et un groupe dédiés pour prendre le contrôle du démon polkitd après son démarrage. Tapez les commandes suivantes en tant qu'utilisateur root :

groupadd -fg 27 polkitd &&
useradd -c "PolicyKit Daemon Owner" -d /etc/polkit-1 -u 27 \
        -g polkitd -s /bin/false polkitd

Si vous utilisez JS-102.13.0, effectuez les changement suivants (voir l'explication des commandes plus bas pour plus d'informations) :

sed -e 's/JS_Init/JS::DisableJitBackend(); &/' \
    -i src/polkitbackend/polkitbackendjsauthority.cpp

Installez Polkit en exécutant les commandes suivantes :

mkdir build &&
cd    build &&

meson setup ..                      \
      --prefix=/usr                 \
      --buildtype=release           \
      -Dman=true                    \
      -Dsession_tracking=libelogind \
      -Dtests=true                  &&
ninja

Pour tester les résultats, assurez-vous d'abord que le démon D-Bus du système tourne et que D-Bus Python-1.3.2 et dbusmock-0.29.1 sont tous deux installés. Ensuite, lancez ninja test.

Maintenant, en tant qu'utilisateur root :

ninja install

Explication des commandes

sed -e 's/JS_Init/JS::DisableJitBackend(); &/' ...  : la compilation JIT de JS102 nécessite les droits W+X ce qui est dangereux et n'est pas permis par le fichier d'unité systemd fournit das le paquet polkit. Cette commande n'est pas vraiment nécessaire sur les systèmes basés sur sysvinit mais elle améliore tout de même la sécurité. Elle n'a pas d'effet si vous construisez polkit avec le moteur Javascript recommandé, duktape-2.7.0.

--buildtype=release : spécifie le type de construction convenant aux versions stables de ce paquet, comme la valeur par défaut produit des binaires non optimisés.

-Dtests=true : ce paramètre permet de lancer la suite de tests de ce paquet. Comme Polkit est utilisé pour les autorisation, son intégrité peut affecter la sécurité du système. Il est donc recommandé de lancer la suite de tests en construisant ce paquet.

-Djs_engine=mozjs : ce paramètre permet d'utiliser le moteur JavaScript JS-102.13.0 au lieu du moteur duktape-2.7.0.

-Dos_type=lfs : utilisez ce paramètre si vous n'avez pas créé le fichier /etc/lfs-release ou l'auto-détection de la distribution échouera et vous ne pourrez pas utiliser Polkit.

-Dauthfw=shadow : Ce paramètre configure le paquet pour utiliser le système d'authentification Shadow au lieu de Linux-PAM. Utilisez-le si vous n'avez pas installé Linux-PAM.

-Dintrospection=false : utilisez cette option si vous êtes certain que vous n'avez pas besoin des fichiers gobject-introspection pour polkit, ou que vous n'avez pas installé gobject-introspection.

-Dman=false : utilisez cette option pour désactiver la génération et l'installation des pages de manuel. C'est utile si vous n'avez pas installé libxslt.

-Dexamples=true : utilisez cette option pour construire les programmes d'exemple.

-Dgtk_doc=true : utilisez cette option pour activer la construction et l'installation de l'API de la documentation.

Contenu

Programmes installés: pkaction, pkcheck, pkexec, pkttyagent et polkitd
Bibliothèques installées: libpolkit-agent-1.so et libpolkit-gobject-1.so
Répertoires installés: /etc/polkit-1, /usr/include/polkit-1, /usr/lib/polkit-1, /usr/share/gtk-doc/html/polkit-1 et /usr/share/polkit-1

Descriptions courtes

pkaction

est utilisé pour obtenir des informations sur les actions PolicyKit enregistrées

pkcheck

est utilisé pour vérifier si un processus est autorisé à faire une action

pkexec

permet à un utilisateur autorisé d'exécuter une commande en tant qu'utilisateur différent

pkttyagent

est utilisé pour démarrer un l'agent d'authentification en mode texte

polkitd

fournit le service D-Bus org.freedesktop.PolicyKit1 sur le bus de message du système

libpolkit-agent-1.so

contient les fonctions de l'API de Polkit pour l'authentification

libpolkit-gobject-1.so

contient les fonctions de l'API d'authentification Polkit