如何解决SELinux阻止虚拟机访问文件?

日期: 2013-04-21 作者:Sander van Vugt翻译:唐琼瑶 来源:TechTarget中国 英文

我用的是Fedora 17和KVM,虚拟机运行得很好。我就尝试访问主机系统上的一个文件,但SELinux阻止虚拟化访问除了/var/lib/libvirt/images里的其他文件。当在共享路径上宿主的虚拟机运行时,主机给出以下信息:SELinux is preventing /usr/bin/qemu-kvm from read access on the directory share.

    这时我该肿么办?我虚拟机的目的是在多个Linux版本上测试二进制,所以共享路径是最简单的。有办法让/tmp/共享让每个人都可用嘛?

    Sander van Vugt:除了/var/lib/libvirt/images,你无法在路径中共享虚拟机的原因在于SELinux。SELinux为系统添加了额外保护。通过在目录上使用标签,将目录设置为专有用途。存储镜像文件的最佳方式是通过在目录上设置合适的类型标签。你这样的情形,运行下面两个命令即可(请确保在根shell下执行):

semanage –t –a virt_image_t /tmp/share(/.*) ?

restorecon –R –v /tmp/share

    如果还不行,可完全禁用SELinux。可通过将下面这行添加都文件/etc/sysconfig/selinux中:

SELINUX=disabled

    如果没时间重启计算机,可使用setenforce 0暂时禁用SELinux,当不要忘记更改上面的配置文件,否则在你重启时又会自动开启SELinux。

    接下来,你说想要每个人都能访问/tmp/share的内容。最简单的方式是创建NFS共享,请确保文件/etc/exports包含以下行:

/tmp/share     *(rw,no_root_squash)

    然后,使用命令service nfs启动NFS服务器。对于其他计算机,现在可加载NFS共享,使用下面命令即可:

mount –t nfs your.fedora.computer:/tmp/share/mnt

    大功告成,访问/mnt目录即可访问NFS共享的内容,也可从这访问镜像文件。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

相关推荐