С помощью sudo вы можете установить политики для каждого пользователя и программы для сохранения или сброса среды вызывающих в контексте sudo. Политика env_reset установлена по умолчанию.
Вы не можете запускать графические приложения через pkexec без явной настройки для этого. Поскольку это всего лишь результат перезагрузки среды, это, очевидно, верно и для sudo. Однако обратите внимание, что ни pkexec, ни sudo не могут помешать злонамеренному приложению, работающему от имени пользователя root, получить всю необходимую информацию из диспетчера отображения или из файла X11-cookie пользователя. Последнее, оба или похожее, может даже быть сделано некорневыми приложениями в зависимости от обстоятельств.
Sudo не требует явных списков пользователей. Перечисление любой группы пользователей или даже установка разрешения для всех пользователей в целом может быть сделано. Директива target_pw позволяет этим пользователям проходить аутентификацию с учетными данными пользователя в том контексте, в котором они хотят запустить приложение, то есть root. Кроме того, одинаково традиционная программа su (su / gtksu / kdesu) может использоваться для того же самого без специальной настройки.
sudo также позволяет пользователю оставаться аутентифицированным в течение указанного времени. Опция называется тайм-аут, настраивается глобально, для пользователя или для приложения. Аутентификация может быть сохранена для tty или глобально для пользователя.
Хотя pkexec может не проверять аргументы, переданные в PROGRAM, sudo действительно имеет эту функцию. Признаюсь, однако, вы можете легко запутаться с этим, и это обычно не делается.
Вы можете немного настроить то, как вы хотите, чтобы программы запускались через pkexec: значок, текст для отображения, вы даже можете иметь материал для локализации и все такое. В зависимости от обстоятельств это может быть действительно изящно. Грустно, однако, что кто-то почувствовал необходимость изобретать велосипед для этой функции. Вероятно, это было бы чем-то, что можно поместить в графические оболочки gtksudo / kdesu.
Policykit - это только централизованная структура конфигурации. К сожалению, не очень. XML-файлы PK намного сложнее, чем то, что приложение может предоставить изначально без двоичных файлов. И никто не будет настолько безумным, чтобы использовать двоичные файлы ... о, gconf ... не бери в голову.