如何强制 flatpak 要求输入密码

Tra*_*der 8 sudo password flatpak discover-software-center

安装将全局安装的 flatpak 时,sudo组中的任何人都可以在没有 sudo 的情况下安装 flatpak。

有没有办法编辑由 flatpak 安装的 polkit 规则以允许这样做或完全删除它,以便在您尝试安装全局 flatpak 时,系统会提示您使用 CLI 和软件商店输入密码(就我而言,KDE Discover)?

小智 1

默认情况下,flatpak polkit 规则不需要密码。不过,您可以设置规则来要求这样做。

\n

Ubuntu/Debian 衍生品 ( policykit< 0.106 )

\n

创建一个新文件,命名flatpak\xe2\x80\x91sudo\xe2\x80\x91always\xe2\x80\x91password.pkla/\xe2\x81\xa0etc\xe2\x81\xa0/\xe2\x81\xa0polkit\xe2\x80\x911\xe2\x81\xa0/\xe2\x81\xa0localauthority\xe2\x81\xa0/\xe2\x81\xa050\xe2\x80\x91local.d\xe2\x81\xa0/

\n
[Install Flatpak apps and runtimes]\nIdentity=unix-group:sudo\nAction=org.freedesktop.Flatpak.app-install;org.freedesktop.Flatpak.runtime-install;org.freedesktop.Flatpak.app-uninstall;org.freedesktop.Flatpak.runtime-uninstall;\nResultActive=auth_admin\n
Run Code Online (Sandbox Code Playgroud)\n

任何版本policykit>= 0.106

\n

创建一个新文件,命名01\xe2\x80\x91flatpak\xe2\x80\x91sudo\xe2\x80\x91always\xe2\x80\x91password.rules/\xe2\x81\xa0etc\xe2\x81\xa0/\xe2\x81\xa0polkit\xe2\x80\x911\xe2\x81\xa0/\xe2\x81\xa0rules.d\xe2\x81\xa0\xe2\x81\xa0\xe2\x81\xa0/

\n
polkit.addRule(function(action, subject) {\n    if ((action.id == "org.freedesktop.Flatpak.app-install" ||\n         action.id == "org.freedesktop.Flatpak.runtime-install"||\n         action.id == "org.freedesktop.Flatpak.app-uninstall" ||\n         action.id == "org.freedesktop.Flatpak.runtime-uninstall") &&\n         subject.active == true && subject.local == true &&\n         subject.isInGroup("sudo")) {\n            return polkit.Result.AUTH_ADMIN;\n    }\n\n    return polkit.Result.NOT_HANDLED;\n});\n
Run Code Online (Sandbox Code Playgroud)\n
\n

policykit这些是安装规则的直接还原flatpak

\n

权限org.freedesktop.Flatpak.modify-repo被移除(默认对所有用户启用),org.freedesktop.Flatpak.override-parental-controls被移除(不适用),返回的policykit授权类型由yesback变为auth_admin。(polkit有关身份验证类型的手册

\n

.rules文件是由 flatpak 制作的,该.pkla文件是 Debian 基于 flatpak.rules文件制作的。Debian目前不会升级policykit,因此他们将其向后移植到旧系统0.105.rules

\n

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

\n

auth_admin_keep如果您不想在一个命令中询问每个 Flatpak 和每个运行时的密码,您可能需要考虑使用它。

\n