启动 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
我发现只需将我的用户添加到libvirt
和kvm
组即可停止提示。
sudo usermod -a -G libvirt $(whoami)
sudo usermod -a -G kvm $(whoami)
whoami
输出你的用户名,它将自动被你的用户名替换
答案3
密码提示是为了系统安全而设置的,因此如果你这样做,可能会使系统变得脆弱。
Group在您的机器上创建组。或者您可以运行这个“sudo groupadd -r Group”
Group User你可以通过运行“sudo usermod -a -G ”将任何用户加入此系统组
现在你需要创建 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
您的用户名