如何强制 flatpak 要求输入密码

如何强制 flatpak 要求输入密码

安装将全局安装的 flatpak 时,sudo组内的任何人都可以安装无需 的 flatpak sudo

有没有办法编辑 flatpak 安装的 polkit 规则以允许这样做,或者将其完全删除,以便任何时候您尝试安装全局 flatpak 时,系统都会提示您使用 CLI 和软件商店(在我的情况下是 KDE Discover)输入密码?

答案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-controls已被删除(不适用),并且返回的 policykit 授权类型从 改回yesauth_admin。(polkit身份验证类型手册

.rules文件由 flatpak 制作,该.pkla文件由 Debian 制作,基于 flatpak 的文件。Debian目前.rules不会进行policykit进一步升级,因此他们0.105移植.rules到旧系统

原始.rules文件- - -原始.pkla文件

auth_admin_keep如果您不想在一个命令中要求输入每个 flatpak 和每个运行时的密码,您可能需要考虑使用。

相关内容