如何防止 virt-manager 询问 root 密码?

bas*_*ic6 23 login virtual-machine linux-kvm policykit

启动 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 上的示例配置已经过时了?

需要什么配置才能摆脱密码提示(针对特定用户组)?

Pav*_*rda 18

/etc/polkit-1/rules.d/10.virt.rules:

polkit.addRule(function(action, subject) {
    if (action.id == "org.libvirt.unix.manage"
            && subject.local
            && subject.active
            && subject.isInGroup("libvirt")) {
        return polkit.Result.YES;
    }
});
Run Code Online (Sandbox Code Playgroud)

您必须执行常见步骤,包括重新启动 policykit 并在将相应用户添加到libvirt组后开始与相应用户的新会话。

看起来该资源是关于 Fedora 18 的,但它已经使用了 javascript 语法,因此它很可能也适用于 Fedora 19。

链接:

  • @jwbensley polkit 方式是动态的,并向活动本地会话的所有者授予权限。组方式是静态的,并将权限授予特定用户。选择您认为合适的方式。 (2认同)

vel*_*lis 6

我发现,简单地增加我的用户libvirtkvm组停止的提示。

sudo usermod -a -G libvirt yourusername
sudo usermod -a -G kvm yourusername
Run Code Online (Sandbox Code Playgroud)