如何防止virt-manager要求输入root密码?


18

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

要消除密码提示(针对特定用户组),必须进行哪些配置?

Answers:


16

/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。

链接:


1
此解决方案有效!也感谢您的链接。获得赏金。
senorsmile

很抱歉,格式错误,已解决。
2013年

与将用户添加到libvirt组相比,这有何不同?我测试了将用户添加到libvirt组,然后不需要其他身份验证。
jwbensley

1
@jwbensley polkit方式是动态的,并向活动的本地会话的所有者授予权限。分组方式是静态的,并将特权授予该特定用户。选择合适的方式。
PavelŠimerda'3

1

密码提示是为了确保系统安全,因此如果这样做,可能会使其容易受到攻击。

  1. Group在计算机上创建组。或者,您可以运行此“ sudo groupadd -r Group

  2. 您可以通过运行“ sudo usermod -a -G Group User” 来加入该系统组的任何用户。

  3. 现在,您需要创建我们的PolicyKit策略,该策略将允许的用户Group运行virt-manager

您将在以下路径下创建文件:“ / etc / polkit-1 / localauthority / 50-local.d / 50- Grouporg。-libvirt-local-access.pkla”
,并将其下面的行

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

这就是您现在所需要执行的所有操作,您可以运行它。我希望这对您有帮助。


这是旧的解决方案。该解决方案在基于Fedora 19或Current Arch的较新的基于Linux的操作系统上不起作用。(我刚刚进行了测试。甚至没有localauthority目录,并且创建子文件夹和指定的文件无效)。
senorsmile

@senorsmile您是否向Fedora 19提交了错误报告?
PavelŠimerda'13
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.