终端用户如何使用virt-manager访问虚拟机

日期: 2015-03-11 作者:Sander van Vugt翻译:张冀川 来源:TechTarget中国 英文

virt-manager是用于管理KVM虚拟环境的主要工具,默认设置下需要使用root用户才能够使用该工具。当你想在KVM hypervisor服务器上托管虚拟机,由最终用户而非root用户访问这些虚拟机时并不总是很便利。 在某些情况下,通过一些设置就能够很容易避免该问题。如果最终用户需要远程访问某个虚拟机,可能需要为其提供访问虚拟机的安全Shell。

这一设置并不复杂,因为不需要给主机授予额外的权限,而且用户只需要以root用户访问自己的虚拟机。然而如果用户需要全面控制虚拟机,包括在virt-manager工具中显示的硬件设置,那么情况就变得有些复杂了。 如果想以非root用户启动virt-m……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

virt-manager是用于管理KVM虚拟环境的主要工具,默认设置下需要使用root用户才能够使用该工具。当你想在KVM hypervisor服务器上托管虚拟机,由最终用户而非root用户访问这些虚拟机时并不总是很便利。

在某些情况下,通过一些设置就能够很容易避免该问题。如果最终用户需要远程访问某个虚拟机,可能需要为其提供访问虚拟机的安全Shell。这一设置并不复杂,因为不需要给主机授予额外的权限,而且用户只需要以root用户访问自己的虚拟机。然而如果用户需要全面控制虚拟机,包括在virt-manager工具中显示的硬件设置,那么情况就变得有些复杂了。

如果想以非root用户启动virt-manager,可能会返回错误信息,显示由于Policy Kit策略不存在无法访问libvirtd。为使最终用户能够通过libvirtd访问虚拟机,首先需要让用户能够访问libvirtd,需要在libvirtd的配置文件/etc/libvirt/libvirtd.conf中增加如下配置:

unix_sock_group = "libvirt"
unix_sock_rw_perms = "0770"
auth_unix_rw = "none"

virt-manager使用Unix socket访问libvirtd,默认情况下需要有root权限才能够访问socket。在libvirtd.conf文件中增加的第一行改变了默认设置,让libvirtd使用libvirt用户组而非root。接下来需要增加unix_sock_rw_perms参数以确保用户以及用户组对socket具有写权限。增加的第三行表明不再需要进一步认证。

由于配置了libvirt组访问libvirtd正在监听的socket,你还需要创建libvirt用户组,并将用户添加到libvirt组中,操作很简单。

首先,依次输入"groupadd libvirt"和"usermod -aG libvirt user1 user2"命令。这会在libvirt用户组中增加两个用户user1、user2。执行完上面两条命令后,就可以使用user1或user2调用virt-manager了。

最后需要考虑的就是如何访问磁盘镜像文件。默认情况下,磁盘镜像文件存储在/var/lib目录下。你必须变更并告知用户在其根目录下存储虚拟机镜像文件,因为正常情况下用户不具有写权限。

如果不想告诉用户他们需要将磁盘镜像文件所在目录修改为家目录,那么可能要考虑针对/var/lib/images目录增加文件系统访问控制列表。

为配置访问控制列表,首先要检查并查看其是否支持已挂载的文件系统。如果支持,你可以使用下面两个命令增加对/var/lib/libvirtd/images目录的写权限:

setfacl -R -m g:libvirt:rw /usr/lib/libvirt/qemu
setfacl -R -m d:g:libvirt:rw /usr/lib/libvirt/qemu

到目前为止,所有设置已经完成了,最终用户应该能够通过virt-manager管理虚拟机了,然而使用该方法并不能够将KVM环境作为私有云使用。通过virt-manager,用户不止能够看到他们自己的虚拟机,还能够看到其他虚拟机。而且因为libvirtd使用root权限访问虚拟机镜像,对此你毫无办法。但至少你创建了一个配置,用户不需要具备root权限就能够访问虚拟机了。

翻译

张冀川
张冀川

TechTarget中国特约专家,任职于某国企信息中心,负责数据中心硬件基础设施及信息系统运维管理工作,对虚拟化及云计算技术有浓厚兴趣,并在工作中积极应用

相关推荐

  • VMware快照工作原理以及如何运用

    当你更新或修复应用程序和服务器时,VMware快照无疑是你的救星。而如果你负责监管虚拟环境,你更是应该知道什么 […]

  • 回顾年度9大虚拟化技术

    虚拟化管理员从未放弃追寻更好虚拟化技术,以使他们的工作更快、更易于管理以及更好地优化。 我们看到,虚拟化工具在 […]

  • 配置ESXi Autostart,自动打补丁

    顾名思义,VMware ESXi Autostart能够实现自动开启、关闭ESXi服务器上的虚拟机,让虚拟机管理变得更轻松。如果运行了多个虚拟机并且给主机打补丁后需要重启主机,那么ESXi Autostart的作用就更大了,没有Autostart的话,你需要在给主机打补丁后,手动重启每个虚拟机。

  • 推荐一款好的虚拟主机提供商

    推荐一款好的虚拟主机提供商 推荐理由:   第一:种类多:有经济型,全能型,功能型等   […]