安装将全局安装的 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 授权类型从 改回yes
为auth_admin
。(polkit
身份验证类型手册)
该.rules
文件由 flatpak 制作,该.pkla
文件由 Debian 制作,基于 flatpak 的文件。Debian目前.rules
不会进行policykit
进一步升级,因此他们0.105
移植.rules
到旧系统。
原始.rules
文件- - -原始.pkla
文件
auth_admin_keep
如果您不想在一个命令中要求输入每个 flatpak 和每个运行时的密码,您可能需要考虑使用。