web-dev-qa-db-fra.com

Par défaut, qui est autorisé à obtenir les privilèges root avec pkexec?

J'ai appris aujourd'hui que l'on peut utiliser pkexec à partir de la ligne de commande, d'une manière similaire à Sudo, pour exécuter des programmes avec les privilèges root. Je suis curieux de savoir comment pkexec décide qui est autorisé à le faire.

La page de manuel de pkexec(1) dit

Par défaut, l'autorisation org.freedesktop.policykit.exec est requise sauf si un fichier de définition d'action est présent pour le programme en question.

C’est un peu difficile à analyser pour ceux qui ne sont pas familiers avec policykit. Mais avec un peu de doute, jetons un coup d'œil à /usr/share/polkit-1/actions/org.freedesktop.policykit.policy. Dans la section org.freedesktop.policykit.exec, nous voyons la chaîne auth_admin.

En référence à polkit(8), nous voyons:

auth_admin

L'authentification par un utilisateur administratif est requise.

Qui est exactement un "utilisateur administratif" dans ce sens? Quels tests sont effectués pour déterminer si un utilisateur est "administratif"? Les fichiers de configuration sont de plus en plus difficiles à trouver et à comprendre.

Je suis conscient que c'est configurable. Je veux connaître la valeur par défaut pour, par exemple, Ubuntu 15.04.

5
Nate Eldredge

Par défaut, ce sont les membres du groupe Sudo et l'utilisateur root, en raison de ces fichiers dans /etc/polkit/localauthority.conf.d/:

$ tail /etc/polkit-1/localauthority.conf.d/*
==> /etc/polkit-1/localauthority.conf.d/50-localauthority.conf <==
# Configuration file for the PolicyKit Local Authority.
#
# DO NOT EDIT THIS FILE, it will be overwritten on update.
#
# See the pklocalauthority(8) man page for more information
# about configuring the Local Authority.
#

[Configuration]
AdminIdentities=unix-user:0

==> /etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf <==
[Configuration]
AdminIdentities=unix-group:Sudo;unix-group:admin

Le premier fichier accorde l'accès à l'UID 0 (root) et le second aux groupes Sudo et admin. admin n'est pas vraiment utilisé sur Ubuntu, mais Sudo l'est, et c'est le groupe utilisé pour accorder l'accès à Sudo également.

6
muru