polkit 使用用 javascript 编写的规则文件进行配置。
您编写自定义函数,并将它们作为参数传递给polkit.addRule()
.当执行 polkit 操作时,将按顺序调用函数,直到返回结果。 (否则使用默认值)。
您的规则函数使用两个参数调用: 的名称action
和一个subject
对象。
您可以用来subject.isInGroup("wheel")
测试用户是否属于“wheel”组。
polkit 默认使用用户是否是“管理员”的概念。这个概念的含义可以使用 polkit.addAdminRule() 以一种有点奇怪的方式进行修改。不同发行版的默认值有所不同。在某些发行版中,管理员被放置在“wheel”组中。在其他发行版中,“sudo”组被视为管理员。
是否可以以可移植的方式为 polkit.addRule() 编写一个函数,该函数测试主题是否在发行版的管理员组中,而不是对“wheel”或“sudo”组进行硬编码?
答案1
这不可能。
这不是一种非常常见的安全策略类型——无论是对于 polkit 还是其他任何东西。很多东西要么使用组,要么使用 polkit 密码提示。
我只注意到 PackageKit 使用了这种类型的策略。 (我猜管理员组是由发行版在编译 PackageKit 时指定的)。