Il existe deux manières générales d'exécuter des applications graphiquement en tant qu'utilisateur root (ou, plus généralement, en tant qu'un autre utilisateur). Des programmes comme gksu
, gksudo
et kdesudo
sont des interfaces graphiques pour sudo
. En revanche, pkexec
est une interface graphique pour PolicyKit .
Lors de l' exécution manuelle de programmes en tant qu'utilisateur root (ou utilisateur non root), quels sont les avantages / inconvénients (le cas échéant) de l'utilisation pkexec
, par rapport à la méthode plus traditionnelle consistant à utiliser une sudo
interface frontale?
Réponses:
PolicyKit est plus configurable, bien
pkexec
que ne l'utilise pas. Indiquez également àpkexec
l'utilisateur le chemin d'accès complet du programme qui sera démarré, afin qu'il soit un peu plus sûr de ce qu'il va se passer. Les «stratégies» de PolicyKit peuvent être utilisées pour définir davantage de paramètres d'avancée. Par exemple, si le mot de passe doit être mémorisé.Quelque chose que je tire du
pkexec
manuel:Plus d'informations sur les politiques ou les définitions d'actions du
pkexec
manuel:la source
pkexec
des applications graphiques (je ne l'avais jamais fait ainsi ...). Votre réponse explique pourquoi il n'y en a pas (ou du moins pourquoi un environnement personnalisé doit être spécifié pour le faire).pkexec
, dans quel sens peut-il limiter ses capacités ("autorisations")? J'accorde à un programme la possibilité de faire n'importe quoi quand je l'exécute avecsudo
unesudo
interface ... dans quel sens exécuter un programme en tant que rootpkexec
ne le fait-il pas aussi?pkexec
ce que cela facilite ou estpkexec
-ce que les choses fonctionnent simplement en tant que root avec des capacités illimitées? L'pkexec
extrait manuel que vous avez inclus dans votre réponse explique comment écrire des règles pour déterminer qui peut exécuter un programme en tant que root (ou en tant qu'utilisateur non root), plutôt que ce que le programme peut faire.pkexec
c'est plus configurable quesudo
, et compte tenu de la discussion que nous avons eu ici dans les commentaires, cela ne semble pas être le cas. Envisageriez-vous de modifier votre réponse afin d'expliquersudo
la configurabilité et de la comparer / opposer àpkexec
, ou de modifier votre réponse pour indiquer que la différence est autre chose que la configurabilité?Avec sudo, vous pouvez définir des stratégies par utilisateur et par programme pour conserver ou réinitialiser l'environnement des appelants dans le contexte de sudo. La politique env_reset est définie par défaut.
Vous ne pouvez pas exécuter d'applications graphiques via pkexec sans le configurer explicitement. Comme il ne s'agit que d'un résultat de la réinitialisation de l'environnement, ceci est également vrai pour sudo. Notez cependant que ni pkexec ni sudo ne peuvent empêcher une application malveillante de s'exécuter en tant que root pour récupérer toutes les informations nécessaires à partir des gestionnaires d'affichage ou du fichier de cookies X11 de l'utilisateur. Ce dernier, les deux ou similaire, peut même être fait par des applications non root en fonction des circonstances.
Sudo ne nécessite pas de listes explicites d'utilisateurs. Vous pouvez répertorier n'importe quel groupe d'utilisateurs ou même définir une autorisation pour tous les utilisateurs. La directive target_pw permet à ces utilisateurs de s'authentifier avec les informations d'identification de l'utilisateur dans le contexte duquel ils souhaitent exécuter une application, c'est-à-dire root. En dehors de cela, le programme tout aussi traditionnel su (su / gtksu / kdesu) peut être utilisé pour faire la même chose sans configuration spéciale.
sudo permet également à l'utilisateur de rester authentifié pendant un temps spécifié. L'option est nommée timeout, configurable globalement, par utilisateur ou par application. L'authentification peut être conservée par utilisateur ou globalement par utilisateur.
Bien que pkexec ne puisse pas valider les ARGUMENTS transmis à PROGRAM, sudo dispose bien de cette fonctionnalité. Admis cependant, vous pouvez facilement déconner, et ce n’est normalement pas fait.
Vous pouvez modifier un peu la façon dont vous voulez que les programmes soient exécutés via pkexec: icône, texte à afficher, vous pouvez même avoir des tâches de localisation, etc. Selon les circonstances, cela peut être astucieux. Malheureusement, cette personne a ressenti le besoin de réinventer la roue de cette fonctionnalité. Ce serait probablement quelque chose à mettre dans les wrappers graphiques gtksudo / kdesu.
Policykit n’est alors qu’un cadre de configuration centralisé. Malheureusement pas une jolie. Les fichiers XML de PKs sont bien plus compliqués que tout ce qu'une application pourrait fournir de manière native à court de fichiers binaires. Et personne ne voudrait utiliser si binaire… oh gconf… tant pis.
la source
pkexec
pouvez exécuter l'interface graphique sans configurer: askubuntu.com/a/332847/89385Quelques petites choses en quoi ses interfaces
pkexec
sont différentessudo
:pkexec
sans le configurer explicitement.pkexec
: icône, texte à afficher, si vous souhaitez vous souvenir du mot de passe ou non, si vous voulez le laisser s'exécuter graphiquement et plus encore.sudo
vous devez être répertorié dans lesudoers
fichier en tant qu'administrateur .gksudo
verrouille le clavier, la souris et la mise au point lorsque vous demandez un mot de passe,pkexec
ne le fait pas. Dans les deux cas, les frappes au clavier sont néanmoins sniffables .pkexec
vous travaillez dans un environnement légèrement plus assaini.Essayez par exemple:
la source
root
avecpkexec
. Est-il configurable, que les utilisateurs peuvent utiliserpkexec
(même s'ils connaissent le mot de passe d'un autre utilisateur autorisé à le faire)?su
est configurable de cette façon. Lorsque j'essaie de contacter unsu
autreroot
utilisateur queguest
sur un système Oneiric, cela me dit que je ne suis pas autorisé à le faire. (En revanche, lorsque je tente d'utiliserpkexec
commeguest
sur Onirique ou précis, je reçois ce qui ressemble à une erreur d'assertion, que je peux signaler rapidement comme un bug, que je ne devrais pas me que même si elle n'est pas autorisé.)sudo
ses interfaces peuvent également être modifiées comme décrit au point 2. Vous pouvez exécuter un programme avecgksu
ougksudo
afficher du texte personnalisé , ne plus avoir besoin des mots de passe de certains utilisateurs en les modifiant/etc/sudoers
(avecvisudo
), et modifier la durée de leur mémorisation en modifiant expiration du délai d'attente de sudo (bien que je ne sois pas sûr de le faire sous Ubuntu, qui est configuré de sorte que les questions de savoir sisudo
un mot de passe est nécessaire ou non , et combien de temps il faudra avant qu'il en ait besoin, sont spécifiques au terminal ).pkexec
pouvez exécuter l'interface graphique sans configurer: askubuntu.com/a/332847/89385