При установке flatpak, который будет установлен глобально, любой в группе sudo
может установить flatpak без sudo.
Есть ли способ отредактировать правила polkit, которые установлены flatpak, чтобы разрешить это, или просто полностью удалить его, чтобы в любой момент, когда вы пытаетесь установить глобальный flatpak, вам будет предложено ввести пароль, используя как CLI, так и Магазин программного обеспечения (в моем случае KDE Discover)?
По умолчанию правила flatpak polkit не требуют пароля. Однако вы можете настроить правила так, чтобы они требовались.
policykit
< 0,106)Создайте новый файл с именем flatpak-sudo-always-password.pkla
в / etc/polkit‑1/localauthority/50‑local.d/
[Install Flatpak apps and runtimes]
Identity=unix-group:sudo
Action=org.freedesktop.Flatpak.app-install;org.freedesktop.Flatpak.runtime-install;org.freedesktop.Flatpak.app-uninstall;org.freedesktop.Flatpak.runtime-uninstall;
ResultActive=auth_admin
policykit
>= 0.106Создайте новый файл с именем 01– flatpak-sudo-always-password.rules
в /etc/polkit-1/rules.d/
polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.Flatpak.app-install" ||
action.id == "org.freedesktop.Flatpak.runtime-install"||
action.id == "org.freedesktop.Flatpak.app-uninstall" ||
action.id == "org.freedesktop.Flatpak.runtime-uninstall") &&
subject.active == true && subject.local == true &&
subject.isInGroup("sudo")) {
return polkit.Result.AUTH_ADMIN;
}
return polkit.Result.NOT_HANDLED;
});
Это прямые реверсии policykit
правила, которые устанавливает flatpak
.
Разрешение org.freedesktop.Flatpak.modify-repo
было удалено (по умолчанию включено для всех пользователей), org.freedesktop.Flatpak.override-parental- элементы управления
были удалены (неприменимо), а возвращаемый тип авторизации policykit изменен с yes
обратно на auth_admin
. (polkit
руководство по типам аутентификации)
Файл .rules
был создан flatpak, а файл .pkla
— Debian на основе файл flatpak .rules
. Debian пока не обновляет policykit
выше 0.105
, поэтому они перенесли .rules
в старую систему.
Оригинал .rules
файл - - - Оригинал .pkla
файл
Вы можете рассмотреть возможность использования auth_admin_keep
вместо этого, если вы не хотите запрашивать пароль для каждого плоского пакета и каждой среды выполнения в одной команде.