启动 virt-manager 时,它会询问 root 密码。
看起来 virt-manager 使 libvirtd 守护进程使用几个参数运行 pkcheck,然后显示此身份验证对话框。因此,PolicyKit 要求提供 root 密码。
官网(libvirt.org)描述了如何定义PolicyKit规则来摆脱密码提示:
$ sudo cat /etc/polkit-1/localauthority/50-local.d/50-org.example-libvirt-remote-access.pkla
[libvirt Management Access]
Identity=unix-group:libvirt
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
Run Code Online (Sandbox Code Playgroud)
子目录“localauthority”不存在。创建它并将具有该名称和内容(libvirt -> 我的组名)的文件放入其中似乎没有任何效果。此外,还有一个使用 JavaScript 语法的默认文件:
/etc/polkit-1/rules.d/50-default.rules
Run Code Online (Sandbox Code Playgroud)
这个包安装在系统上,加上一些 DE 前端:
polkit-0.107-4.fc18.x86_64
Run Code Online (Sandbox Code Playgroud)
显然 libvirt.org 上的示例配置已经过时了?
需要什么配置才能摆脱密码提示(针对特定用户组)?
我无法在 xubuntu 14.04 上使用 xfce GUI 更改任何设置或安装任何内容。某些设置窗口具有解锁按钮,您通常单击以输入密码以获得 root 权限,但如果我单击它们,则不会发生任何事情:
当启动那台机器时,它要求安装语言的东西。当我尝试安装它时,出现此错误:
我怎样才能解决这个问题?
编辑:
我只是尝试/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1按照此处的建议开始,但失败了:
xubuntu-pool-1 vm-admin # /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
(polkit-gnome-authentication-agent-1:3863): GLib-CRITICAL **: g_variant_new_string: assertion 'string != NULL' failed
(polkit-gnome-authentication-agent-1:3863): polkit-gnome-1-WARNING **: Failed to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
Run Code Online (Sandbox Code Playgroud)
EDIT2:
实际上,它似乎并没有失败。它不会返回到 bash 提示符,但无论如何解锁和安装都不起作用。
Edit3:
我还确保在启动时检查了“PolicyKit Authentication Agent”。
更新:
我刚刚发现,这个问题只有在通过 xrdp 登录时才会发生。如果我在本地 vmware 控制台上(这台机器是虚拟的),它工作得很好。所以这个问题一定与xrdp有关。
使用普通用户的 polkit 命令的输出:
$ /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
** (polkit-gnome-authentication-agent-1:4540): WARNING **: Unable to register authentication agent: GDBus.Error:org.freedesktop.PolicyKit1.Error.Failed: …Run Code Online (Sandbox Code Playgroud)