通过 polkit(旧版 .pksa 格式)限制对一个 libvirt 域的访问

通过 polkit(旧版 .pksa 格式)限制对一个 libvirt 域的访问

我有一个在 Ubuntu 18.04 系统上运行 libvirt 的虚拟机管理程序。我需要配置访问权限,以便用户“joe”只能管理一个域。

最近,policykit 从 .pksa 配置文件移至 .rules。但是,Ubuntu 18.04 附带旧版本的 Policykit:

# pkaction --version
pkaction version 0.105

一切相关的 例子仅包含.rules 文件;文档还指出:

如果使用 0.106 之前的 polkit 版本,则只能通过 .pkla 文件验证 (用户、权限) 对。完全验证 (用户、权限、对象) 三元组需要 0.106 版本中引入的新 JavaScript .rules 支持。本文将介绍后者。

当我看着仅限 .pksa 示例,我看到类似这样的内容:

[Allow fred libvirt management permissions]
Identity=unix-user:fred
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes

这太笼统了。我推断在 Ubuntu 18.04 中无法通过 Policykit 限制用户访问单个域,对吗?

如果确实如此,还有其他选择吗?

注意:一个类似的、尚未回答的问题是:https://unix.stackexchange.com/questions/367731/libvirt-debian-restrict-user-domain-access

答案1

policykit 0.105 是 2012 年发布的老版本,缺少灵活的 javascript 规则引擎。遗憾的是,出于我不知道的原因,Debian 和 Ubuntu 自那时起就拒绝跟进上游版本。因此,如果您想要一个灵活的访问控制系统,您需要切换到具有现代 polkit 的其他发行版。

相关内容