Quand dois-je utiliser pkexec et quand sudo -i?

21

J'ai écrit une réponse conseillant l'utilisation de sudo -i nautilus. Je sais que gksuc'est obsolète , et j'avais l'impression que sudo -ic'est ainsi que nous devrions exécuter les applications graphiques en tant que root sans tuer les chatons , mais quelqu'un a commenté « pkexecc'est la nouvelle gksu». Ma compréhension est que ce pkexecn'est pas la même chose que d'utiliser n'importe quelle forme de sudo:

Quand utiliser pkexec vs gksu / gksudo?

et nécessite une configuration, notamment pour une utilisation avec des applications graphiques:

Comment configurer pkexec?

Quand je fais sudo -itout fonctionne toujours, alors pourquoi devrais-je me donner la peine de configurer pkexec? Je peux voir que pour écrire un script qui lance quelque chose en tant que root, je devrais le faire:

Puis-je utiliser pkexec dans un script Python ou un fichier .desktop?

Mais sinon, qu'est-ce que je gagne à utiliser pkexec? Quand dois-je utiliser ces commandes? Quelle est actuellement la meilleure pratique pour ouvrir des applications graphiques en tant que root?

(J'ai déjà lu les ... manpages, mais je ne me sens pas plus sage.)

Zanna
la source
5
Personnellement, j'ignore la dépréciation et j'installe toujours gksusur chaque système pour exécuter des applications GUI avec gksudosi nécessaire. Rien d'autre.
Byte Commander
1
Connexes: Cet ancien article sur les méta a eu une discussion pertinente et la réponse la plus votée suggérée sudo -iest une solution sûre; Mais pas beaucoup expliqué pkexec.
clearkimura
1
Dans le cas de l'utilisation d'éditeurs de texte GUI pour éditer des fichiers en tant que root, qu'en est-il de l'utilisation sudoedit(AKA sudo -e)?
edwinksl
1
@edwinksl vous vouliez dire que vous pouviez définir un éditeur graphique par défaut pour sudoedit? Idée intéressante
Zanna
1
@Zanna Ouais, voir unix.stackexchange.com/a/356443/6949 par exemple.
edwinksl

Réponses:

2

L'utilisation de base est la même - les programmes en question vous permettent d'exécuter d'autres programmes en tant qu'autre utilisateur, généralement root. La différence, cependant, entre les sudovariantes et pkexecest que cela sudodonne à un programme un contrôle total sur tout, tandis qu'avec pkexecvous, vous avez un contrôle beaucoup plus fin en définissant une stratégie pour chaque programme.

Si vous faites confiance aux programmes que vous exécutez, sudo est parfaitement bien. Si vous voulez vraiment tout verrouiller et permettre aux programmes de ne faire que ce que vous leur permettez, utilisez pkexec-le avec polkit .

Bien que l'idée derrière pkexecsoit agréable, je n'irais pas jusqu'à l'appeler la prochaine gksu, en raison de la configuration complexe nécessaire.

Référence: la différence entre sudo et pkexec sur Quora .

Brane
la source