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

发表于:2013-4-24 09:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:唐琼瑶 译    来源:51Testing软件测试网采编

  我用的是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共享的内容,也可从这访问镜像文件。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号