Как заставить flatpak запрашивать пароль

При установке flatpak, который будет установлен глобально, любой в группе sudo может установить flatpak без sudo.

Есть ли способ отредактировать правила polkit, которые установлены flatpak, чтобы разрешить это, или просто полностью удалить его, чтобы в любой момент, когда вы пытаетесь установить глобальный flatpak, вам будет предложено ввести пароль, используя как CLI, так и Магазин программного обеспечения (в моем случае KDE Discover)?

6
задан 30 August 2019 в 01:40

1 ответ

По умолчанию правила flatpak polkit не требуют пароля. Однако вы можете настроить правила так, чтобы они требовались.

Производные Ubuntu/Debian (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 вместо этого, если вы не хотите запрашивать пароль для каждого плоского пакета и каждой среды выполнения в одной команде.

0
ответ дан 8 February 2021 в 22:16

Другие вопросы по тегам:

Похожие вопросы: