尝试在 CentOS 7 服务器上使用 Ansible 创建目录并将文件同步到其中。该部分工作正常。问题是403 Forbidden
当我尝试从浏览器访问它们时出现错误。我了解这是fcontext
SELinux 阻止 Apache 访问文件的问题。我以为我有一些 Ansible 代码可以处理这个问题,但它没有添加fcontext
。我已在 CLI 上手动设置fcontext
以使其工作。如果我删除目录并再次运行 Ansible,则目录和文件将具有正确的。尝试在为生产服务器运行此程序时fcontext
不必手动设置。有什么想法吗?fcontext
这是用于设置fcontext
和restorecon
使用的 Ansible 代码。
- name: Allow apache to read
sefcontext:
target: "{{ dest_dir }}(/.*)?"
setype: httpd_sys_content_t
state: present
- name: Run restore context to reload selinux
shell: restorecon -iRv "{{ dest_dir }}"
答案1
我刚刚偶然发现了这个问题。通过列出本地自定义,我发现我已将多个策略应用于同一个文件。您可以使用查看本地策略,semanage fcontext --list --locallist
然后运行semanage fcontext -d '/some/location(/.*)?'
man semanage-fcontext
了解更多信息。