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

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

启动 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

子目录“localauthority”不存在。创建它并在其中放置一个具有该名称和内容(libvirt -> 我的组名)的文件似乎没有任何效果。此外,还有一个默认文件,它使用 JavaScript 语法:

/etc/polkit-1/rules.d/50-default.rules

该软件包已安装在系统上,另外还安装了一些 DE 前端:

polkit-0.107-4.fc18.x86_64

显然 libvirt.org 上的示例配置已经过时了?

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

答案1

/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;
    }
});

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

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

链接:

答案2

我发现只需将我的用户添加到libvirtkvm组即可停止提示。

sudo usermod -a -G libvirt $(whoami)
sudo usermod -a -G kvm $(whoami)

whoami输出你的用户名,它将自动被你的用户名替换

答案3

密码提示是为了系统安全而设置的,因此如果你这样做,可能会使系统变得脆弱。

  1. Group在您的机器上创建组。或者您可以运行这个“sudo groupadd -r Group

  2. Group User你可以通过运行“sudo usermod -a -G ”将任何用户加入此系统组

  3. 现在你需要创建 PolicyKit 策略,以允许用户Group运行 virt-manager

您将在此路径创建一个文件:“/etc/polkit-1/localauthority/50-local.d/50-org. Group-libvirt-local-access.pkla”
,然后将以下几行放入其中

[允许组Grouplibvirt 管理权限]
Identity=unix-group: Group
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes

这就是你现在需要做的所有事情,你可以运行它了。希望这对你有帮助。

答案4

我实际上会用

sudo usermod -a -G libvirt $(whoami)
sudo usermod -a -G kvm $(whoami)

这样,只需复制粘贴即可直接输出whoami您的用户名

相关内容