SELinux与NFS共享的上下文

我正在尝试在2个CentOS服务器(filesrv和websrv)之间build立一个NFS共享,用于需要由Apache进程读写的文件夹。 我遇到了可写的一面,我已经缩小到SELinuxconfiguration的麻烦了:如果我在NFS客户端上setenforce 0 ,Apache可以写共享。

NFS服务器的导出文件中的相关行是:

/data/files/sitefiles websrv(rw,sync,no_root_squash)

NFS服务器上共享文件夹的SELinux上下文是:

system_u:object_r:httpd_sys_rw_content_t:s0

我在NFS客户端上的fstab条目是:

filesrv:/data/files/sitefiles /var/www/html/webroot/files nfs context="system_u:object_r:httpd_sys_rw_content_t:s0" 0 0

据我所知,这应该挂载与httpd_sys_rw_content_t上下文的NFS共享,但是当我检查它,实际上是:

system_u:object_r:httpd_sys_content_t:s0

有什么可能导致它将更严格的背景应用于股票?

简单的解决scheme应该是使用SELinux boolean httpd_use_nfs来让您的networking服务器显示和写入存储在NFS共享中的内容:

 setsebool -P httpd_use_nfs=1 

发生这个问题的原因是我从同一个服务器挂载了多个NFS共享,而不是所有的都有相同的上下文。

根据多个NFS挂载的RedHat文档 ,我需要将nosharecache添加到我的fstab行以获取挂载。 然后正确的SELinux上下文按逐个安装的方式应用。

我的fstab中的工作线如下:

 filesrv:/data/files/sitefiles /var/www/html/webroot/files nfs nosharecache,context="system_u:object_r:httpd_sys_rw_content_t:s0" 0 0