По умолчанию кому разрешено получать права root с помощью pkexec?
Сегодня я узнал, что можно использовать pkexec из командной строки, аналогично sudo, для выполнения программ с правами root. Мне любопытно как pkexec решает, кому разрешено это делать.
Справочная страница для pkexec(1) говорит
По умолчанию требуется авторизация org.freedesktop.policykit.exec, если только файл определения действия отсутствует для рассматриваемой программы.
Это немного сложно разобрать для тех, кто не знаком с политическим набором. Но с небольшим предположением, давайте посмотрим на /usr/share/polkit-1/actions/org.freedesktop.policykit.policy, в org.freedesktop.policykit.exec раздел мы видим строку auth_admin,
Ссылаясь на polkit(8), мы видим:
auth_adminТребуется аутентификация администратора.
Кто именно является "административным пользователем" в этом смысле? Какие тесты проводятся, чтобы определить, является ли пользователь "административным"? Конфигурационные файлы становятся все труднее найти и понять.
Я знаю, что это настраивается. Я хочу знать значение по умолчанию, скажем, для Ubuntu 15.04.
1 ответ
По умолчанию это члены sudo группа и пользователь root, в силу этих файлов в /etc/polkit/localauthority.conf.d/:
$ tail /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
Первый файл предоставляет доступ к UID 0 (root) и второе в группы sudo а также admin, admin на самом деле не используется в Ubuntu, но sudo есть, и это группа, используемая для предоставления доступа к sudo также.