Когда я должен использовать pkexec, а когда sudo -i?

21

Я написал ответ, рекомендующий использование sudo -i nautilus. Я знаю, что gksuэто устарело , и у меня сложилось впечатление, что sudo -iименно так мы должны запускать графические приложения с правами root, не убивая котят , но кто-то заметил, что « pkexecэто новое gksu». Насколько я понимаю, pkexecэто не то же самое, что использование любой формы sudo:

Когда использовать pkexec vs gksu / gksudo?

и требует настройки, особенно для использования с графическими приложениями:

Как настроить pkexec?

Когда я делаю sudo -iвсе всегда работает, так почему я должен идти на проблемы с настройкой pkexec? Я вижу, что для написания скрипта, который запускает что-то от имени root, мне нужно это сделать:

Могу ли я использовать pkexec в файле Python Script или .desktop?

Но в противном случае, что я получу от использования pkexec? Когда я должен использовать эти команды? Какова в настоящее время лучшая практика для открытия графических приложений от имени пользователя root?

(Я уже прочитал ... manстраницы, но я не чувствую себя мудрее.)

Занна
источник
5
Я лично игнорирую устаревание и всегда устанавливаю gksuна каждую систему для запуска приложений с графическим интерфейсом, gksudoесли это необходимо. Ничего больше.
Byte Commander
1
Связанный: у этого старого поста на мета была соответствующая дискуссия, и предложенный наиболее одобренный ответ sudo -i- безопасное решение; Но мало что объяснил pkexec.
Clearkimura
1
В случае использования текстовых редакторов с графическим интерфейсом для редактирования файлов от имени root, как насчет использования sudoedit(AKA sudo -e)?
edwinksl
1
@edwinksl Вы имели в виду, что вы можете установить графический редактор по умолчанию для sudoedit? Интересная идея
Zanna
1
@Zanna Да, см., Например , unix.stackexchange.com/a/356443/6949 .
edwinksl

Ответы:

2

Основное использование такое же - рассматриваемые программы позволяют запускать другие программы от имени другого пользователя, обычно root. Разница, однако, между sudoвариантами и в pkexecтом, что она sudoдает программе полный контроль над всем, в то время как у pkexecвас есть гораздо более тонкий контроль, определяя политику для каждой программы.

Если вы доверяете программам, которые вы запускаете, sudo вполне подойдет. Если вы действительно хотите заблокировать все , и разрешение программ делать только то , что позволяет им, а затем использовать , pkexecкоторый поставляется вместе с polkit .

Хотя идея, лежащая pkexecв основе, хороша, я бы не стал так называть ее следующей gksuиз-за необходимой сложной установки.

Справка: разница между sudo и pkexec на Quora .

Brane
источник