无法使用 semanage 使 SELinux 上下文类型永久化

Saf*_*ado 4 selinux rhel6

我在 /modevasive 创建了一个新文件夹来保存我的 mod_evasive 脚本和日志目录。我正在尝试将上下文类型更改为 httpd_sys_content_t,以便 Apache 可以写入该文件夹。我确实semanage fcontext -a -t "httpd_sys_content_t" /modevasive更改了上下文,然后restorecon -v /modevasive启用了更改,但是 restorecon 没有做任何事情。所以我曾经chcon手动更改它,做了restorecon看看会发生什么,然后将其改回default_t。

semanage fcontext -l 给出:

/modevasive/          all files          system_u:object_r:httpd_sys_content_t:s0`
Run Code Online (Sandbox Code Playgroud)

看着/etc/selinux/targeted/contexts/files/file_contexts.local

 /modevasive/    system_u:object_r:httpd_sys_content_t:s0
Run Code Online (Sandbox Code Playgroud)

那么为什么restorecon 一直将它设置回default_t?

Saf*_*ado 5

好吧,我联系了 RedHat 支持,这就是我得到的答案。

他让我执行相同的步骤,除了在第一个 semanage 命令中,他让我执行"/modevasive(/.*)?" 而不仅仅是"/modevasive". 我没有解释为什么,但这为我解决了问题。

  • 给出的模式不是目录,而是路径名的正则表达式匹配。所以`/modevasive` 永远不会匹配任何东西。 (3认同)