我正在使用 X over SSH(实际上是 NX,但这只是一个代理)远程管理 CentOS 6.2 服务器。
一切工作正常,除了当我尝试执行通常需要管理权限的任务时(例如 中的内容palimpsest
或任何其他 GUI 工具)。
当我尝试执行会触发身份验证对话框(通过polkit-gnome
)的操作时,权限对话框会默默地失败,并且该软件正在以我的用户帐户运行,而不是 root。
为了澄清,如果我使用本地控制台上的包管理器更改包设置,我会收到一个弹出窗口 - “(添加/删除)包需要身份验证”。
如果我远程执行此操作,身份验证会失败,并且会出现“授权失败”对话框。
它似乎归结为policykit配置,但我已经遵循了polkit手册页,并编辑了我的配置,它没有改变任何东西。
我可以从命令行管理包/执行超级用户的操作,没有任何问题。然而,我非常注重视觉效果,并且在可能的情况下更喜欢 GUI。
好的,看来我需要向策略包添加一条新规则。
离开手册页,我创建了一个文件(名为20-remote-admin-allow.pkla
),并将其放入/etc/polkit-1/localauthority/50-local.d/
.由于似乎有多个 polkit 配置目录,我将相同的文件复制到/var/lib/polkit-1/localauthority/50-local.d/
.
它似乎没有改变任何东西。
这是我的配置文件,如上所述:
[root@cloaica zul]# cat /var/lib/polkit-1/localauthority/50-local.d/10-remote-admin-allow.pkla
[Let remote users do admin stuff]
Identity=unix-user:zul
Action=*
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_self_keep
[root@cloaica zul]# cat /etc/polkit-1/localauthority/50-local.d/20-remote-admin-allow.pkla
[Allow Remote Administraton]
Identity=unix-user:zul
Action=*
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_admin
[root@cloaica zul]#
pkaction --verbose
仍然报道
implicit any: no
implicit inactive: no
对于大多数操作,如果我尝试执行这些操作,则操作会失败,并显示“身份验证失败”对话框,如上所述。
说真的,我真的有人了解 polkit 的实际工作原理吗?
Policykit 似乎是一场持续的噩梦,并且考虑到曾经有一个GUI配置工具 它被删除了,我不明白为什么有人认为它已经准备好发布到生产操作系统中了。
需要明确的是,我喜欢有“请验证以执行此操作”对话框。我只是想实际上有他们,而不是让系统默默地无法进行身份验证。
我不想删除整个 polkit,只是让它认为所有会话都是活动的,或者非活动会话获得与活动会话相同的权限。
答案1
不能肯定地说您遇到了完全相同的问题,但这被列为软呢帽漏洞截至 2011 年 11 月。我安装了一个干净的 CentOS 6,升级了所有软件包,然后在尝试远程访问和添加新软件包(需要身份验证)时遇到了同样的问题。
答案2
嗨,我也有这个问题。特别是用udisk。
(我运行的是 Ubuntu 桌面 14.04)
为了修复 udisk,我这样做了。
备份和编辑
sudo vi /usr/share/polkit-1/actions/org.freedesktop.udisks.policy
寻找所有:
<allow_active>yes</allow_active>
然后更改:
<allow_any>no</allow_any>
到:
`<allow_any>yes</allow_any>`
这允许远程访问而不仅仅是强制本地访问
答案3
试试这个:
[Remote Admin SSH access]
Identity=unix-group:users
Action=*
ResultAny=yes
ResultInactive=yes
ResultActive=yes
之后将用户添加到用户组。您发现此配置有任何安全问题吗?
答案4
我发现正在运行:
/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &
首先在我的 ssh 会话中允许我获得正常的身份验证弹出窗口,就像我是本地人一样。
这样,我就可以运行 gnome-disks 或任何其他需要 auth_admin 的 gnome 实用程序。
该二进制文件来自policykit-1-gnome
包。