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

系统
我用的是Fedora 17和KVM,虚拟机运行得很好。我就尝试访问主机系统上的一个文件,但SELinux阻止虚拟化访问除了/var/lib/libvirt/images里的其他文件。遇到这种问题时,该怎么解决?

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

专题推荐:SELinux:linux内核的安全保镖

这时我该怎么办?我虚拟机的目的是在多个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中国
相关推荐

2012-04-27 09:29:57

虚拟化虚拟机

2012-09-05 11:09:15

SELinux操作系统

2019-11-27 15:46:51

VMware虚拟机黑屏

2010-05-19 10:40:19

虚拟机备份

2011-04-25 13:28:50

Windows虚拟机主机

2023-08-02 12:18:49

2024-02-28 11:33:01

云服务开发

2012-04-10 10:29:29

2010-12-23 14:05:12

虚拟机

2013-01-25 11:21:59

2012-10-29 14:51:34

vSphere存储虚拟化

2022-08-14 09:11:13

Kubernetes容器云原生

2019-08-21 16:27:15

KVM虚拟机网关

2009-12-16 14:33:52

Host访问虚拟机

2012-05-18 10:22:23

2013-11-13 10:16:35

局域网共享文件

2013-07-17 09:32:58

2010-07-26 09:02:38

2009-06-29 19:36:07

虚拟机备份虚拟环境

2018-07-10 15:10:50

OpenStack虚拟机metadata
点赞
收藏

51CTO技术栈公众号