如何设置SELinux对非标准Web根的访问权限?

时间:2018-11-23 15:23:13

标签: nginx ansible vagrant selinux

作为一项学习练习,我在Fedora 29开发箱上设置了CentOS 7 Vagrant VirtualBox机器。我正在使用Ansible配置虚拟机。在我的Vagrantfile中,按如下方式装载我的宿主项目文件:

 config.vm.synced_folder "/home/roger/projects", "/var/www/projects",
    owner: "vagrant",
    group: "nginx",
    mount_options: ["dmode=775,fmode=775"]

在我的Nginx Ansible角色中,除了安装和启动之外,我还执行以下操作:

- name: set SELinux Nginx access to web root   
  command: semanage fcontext -a -t httpd_sys_content_t "/var/www/projects(/*)?" 

- name: persist SELinux access 
  command: restorecon -Rv /var/www/projects

通过浏览器访问Nginx时,出现403 Forbidden错误。如果我通过ssh将selinux设置为在vm上允许,则可以正确提供宿主项目目录中的文件。

进入/etc/selinux/targeted/contexts/files/file_contexts.local的条目看起来正确:

/var/www/projects/*    system_u:object_r:httpd_sys_content_t:s0

我还试图在vm的命令行上运行命令,以绕过Ansible的任何相关内容。

我想念什么?

0 个答案:

没有答案