使用 CentOS 7 进行 VNC 权限转发

使用 CentOS 7 进行 VNC 权限转发

所以我在 CentOS 7 上遇到了另一个奇怪的问题。

我已将 vncserver 安装为 systemd 服务,以我的普通非特权用户身份运行。

有几个进程没有按要求提示我输入 root 密码:yumex 和“磁盘管理”。

当我打开磁盘管理时,我没有收到密码提示,而只是看到“没有允许挂载或卸载的文件系统。请联系您的管理员。”

当我运行 yumex 时,我收到:致命错误:polkit-not-autherized(是的,它说的是 autherized,拼写错误......)“无法获得 polkit autherisation 来启动后端 Yum Extender 将终止”

我对这个问题做了一些研究,唯一的解决方案是运行: su -c 'yumex --root' 然后输入 root 密码。但我讨厌每次运行它时都要输入密码。它应该会提示。

我可以确认这只是使用 VNC 时的问题。如果我使用本地控制台,这两个程序都会要求我输入 root 密码并正常工作。

奇怪的是,大多数其他程序都能正常工作。GParted 要求输入 root 密码等。只有这些特定的程序需要输入 root 密码。

有什么办法可以解决这个问题吗?我使用 MATE 而不是 GNOME3,因为它更有价值。

答案1

这是因为 yumex 强制 polkit 交互式密码验证只能在物理控制台上完成,而不能远程完成:

https://github.com/timlau/yumex/blob/3a0f2830e42d43a83d2dc803cc2c3c119dfa1687/misc/dk.yumex.backend.policy.in#L15

有关 polkit 操作的文档:

https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html

要更改默认行为并允许从 VNC 会话运行由 polkit 授权的 yumex,请编辑

/usr/share/polkit-1/actions/dk.yumex.backend.policy

并改变

<allow_any>no</allow_any>

<allow_any>auth_admin</allow_any>

它应该立即生效。

相关内容