Я ищу какое-то решение в старом стиле: мне нужно заставить всю платформу с повышенными привилегиями на машине Ubuntu запрашивать пароль целевого пользователя / root вместо запроса пароля пользователя.
Мне удалось установить целевую настройку пользователя для sudo, тем не менее, приложения, использующие Polkit для расширенных привилегий, по умолчанию запрашивают пароль пользователя.
Я видел, как несколько пользователей других дистрибутивов искали противоположное решение, позволяющее Polkit использовать пароль пользователя вместо пароля root, но до сих пор нет четкого ответа!
Любая помощь приветствуется!
Это поведение контролируется конфигурацией LocalAuthority PolicyKit. Из раздела АУТЕНТИФИКАЦИЯ АДМИНИСТРАТОРА
документа man pklocalauthority
:
По умолчанию «аутентификация администратора» определяется как запрос пароль root. Поскольку некоторые системы из соображений удобства использования не имеют root и вместо этого полагаться на группу пользователей, являющихся членами административная группа, дающая им привилегии суперпользователя, локальная Полномочия также могут быть настроены для поддержки этого варианта использования. Конфигурация для локального органа считывается из файлов в Каталог /etc/polkit-1/localauthority.conf.d. Все файлы читаются в лексиграфический порядок (с использованием локали C), что означает, что более поздние файлы могут переопределить более ранние. Файл 50-localauthority.conf содержит настройки, предоставляемые производителем ОС. Пользователи и сторонние пакеты могут перетащите файлы конфигурации с приоритетом выше 60, чтобы изменить значения по умолчанию.
По крайней мере, в моей (18.04) системе Ubuntu есть два соответствующих файла: 50-localauthority.conf
и 51-ubuntu-admin.conf
:
$ head /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
Итак, чтобы вернуться к умолчанию PolicyKit, который использует AdminIdentities=unix-user:0
(т.е. root
) вместо значения по умолчанию Ubuntu AdminIdentities=unix-group:sudo;unix-group:admin
(т.е. члены групп sudo
и/или admin
), достаточно либо переименовать 51-ubuntu-admin.conf
так, чтобы он загружался раньше или вообще не загружался — например
sudo mv /etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf{,.ignore}
или закомментируйте в нем запись AdminIdentities
. Первый вариант, возможно, чище и удобнее в сопровождении.