Ansible sefcontext 不会使 fcontext 永久存在

Ansible sefcontext 不会使 fcontext 永久存在

尝试在 CentOS 7 服务器上使用 Ansible 创建目录并将文件同步到其中。该部分工作正常。问题是403 Forbidden当我尝试从浏览器访问它们时出现错误。我了解这是fcontextSELinux 阻止 Apache 访问文件的问题。我以为我有一些 Ansible 代码可以处理这个问题,但它没有添加fcontext。我已在 CLI 上手动设置fcontext以使其工作。如果我删除目录并再次运行 Ansible,则目录和文件将具有正确的。尝试在为生产服务器运行此程序时fcontext不必手动设置。有什么想法吗?fcontext

这是用于设置fcontextrestorecon使用的 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了解更多信息。

相关内容