默认情况下,谁被允许使用 pkexec 获取 root 权限?

默认情况下,谁被允许使用 pkexec 获取 root 权限?

我今天了解到,人们可以使用pkexec类似于 的方式从命令行sudo以 root 权限执行程序。我很好奇如何pkexec决定谁可以这样做。

手册页pkexec(1)

默认情况下,除非相关程序存在操作定义文件,否则需要 org.freedesktop.policykit.exec 授权。

对于不熟悉 policykit 的人来说,解析起来有点困难。但只要稍微猜一下,我们就可以看一下/usr/share/polkit-1/actions/org.freedesktop.policykit.policy。在本org.freedesktop.policykit.exec节中,我们会看到字符串auth_admin

参照polkit(8),我们看到:

auth_admin

需要管理用户进行身份验证。

从这个意义上来说,谁才是“管理员用户”?通过哪些测试来确定用户是否是“管理员”?配置文件变得越来越难找到和理解。

我知道这是可配置的。我想知道 Ubuntu 15.04 的默认设置。

答案1

默认情况下,它是组成员sudo和 root 用户,根据这些文件/etc/polkit/localauthority.conf.d/

$ tail /etc/polkit-1/localauthority.conf.d/*
==> /etc/polkit-1/localauthority.conf.d/50-localauthority.conf <==
# Configuration file for the PolicyKit Local Authority.
#
# DO NOT EDIT THIS FILE, it will be overwritten on update.
#
# See the pklocalauthority(8) man page for more information
# about configuring the Local Authority.
#

[Configuration]
AdminIdentities=unix-user:0

==> /etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf <==
[Configuration]
AdminIdentities=unix-group:sudo;unix-group:admin

第一个文件授予 UID 0 ( root) 访问权限,第二个文件授予组sudo和的访问权限adminadmin在 Ubuntu 上实际上并没有使用,但它确实使用了,并且它也是sudo用于授予访问权限的组。sudo

相关内容