Vagrant:设置同步文件夹的上下文以防止SELinux抱怨

Vagrant:设置同步文件夹的上下文以防止SELinux抱怨,linux,vagrant,selinux,vagrant-windows,Linux,Vagrant,Selinux,Vagrant Windows,流浪汉2.1.1 主机操作系统:Windows 7 Pro 来宾操作系统:Centos 7.4 使用默认的Vagrant Synched文件夹或nfs Vagrant Synched文件夹,我不断收到SELinux错误,告诉我需要将上下文更改为httpd\u sys\u content\t。默认同步文件夹中的所有文件都设置为default\u t上下文,使用nfs同步的所有文件都设置为nft\u t 文件始终是默认的\u t上下文 config.vm.synched_文件夹“.”,“/vagra

流浪汉2.1.1
主机操作系统:Windows 7 Pro
来宾操作系统:Centos 7.4

使用默认的Vagrant Synched文件夹或nfs Vagrant Synched文件夹,我不断收到SELinux错误,告诉我需要将上下文更改为
httpd\u sys\u content\t
。默认同步文件夹中的所有文件都设置为
default\u t
上下文,使用nfs同步的所有文件都设置为
nft\u t

文件始终是默认的\u t上下文
config.vm.synched_文件夹“.”,“/vagrant”

文件始终是nfs\u t上下文
config.vm.synced_文件夹“,”/vagrant”,键入:“nfs”

我尝试使用
fcontext
restorecon
以正常方式更改文件上下文,但
restorecon
只是默默失败

如何设置同步文件/文件夹的上下文以避免SELinux错误

我尝试过使用
:mount\u选项,但它们被忽略了。
示例:
config.vm.synced_文件夹“/www”,“/var/www”,键入:“nfs”,创建:true,id:“站点”,装载选项:['vers=3',:udp,:nolock,:noatime,'context=system\u:object\r:httpd\u系统内容:s0']


可能我在mount options中添加上下文的方式不对???

您必须对vagrant synced文件夹使用rsync,因为不支持通过sync_文件夹设置SELContext,因为这是vboxfs的限制。因此,在您的Vagrant文件中执行以下操作:

config.vm.synced_folder "guest/sync/location", "/host/sync/location", :owner => "root", :group => "root", type: "rsync", rsync__exclude: [".git", ".DS_Store"], rsync__args:["-avz", "--rsync-path='sudo rsync'"]
此解决方案假设您已经按照以下步骤使用semanage和restorecon持久和递归地设置了httpd_sys_content_t

编辑日期:2018年11月3日 遗憾的是,上面的解决方案实际上并没有同步文件,因为rsync实际上不能与widows主机一起工作。以下是我关于解决方法的发现和结论: