RHEL6 上的 selinux:httpd 配置。DocumentRoot [/path/does/exist]“不存在”

RHEL6 上的 selinux:httpd 配置。DocumentRoot [/path/does/exist]“不存在”

我正在运行 RHEL6 原版安装,并已将 httpd DocumentRoot 指向/path/does/exist(它存在!)。我已向用户授予权限apache,并通过以下方式添加了我认为必要的标签:

chcon -R  -t httpd_sys_content_t /path/does

但没有骰子

audit2why显示缺少类型执行允许规则,该规则适用于类似以下请求

avc:拒绝 { 搜索 } pid=4793
   comm="httpd" 名称="/"  
   scontext=unconfined_u:system_r:httpd_t:s0
   tcontext=system_u:object_r:file_t:s0
   tclass=目录

有人能帮我解释一下吗?请注意,我不是在寻找“禁用 selinux”的答案 :-)

谢谢!

-B

答案1

您需要应用以下内容(假设路径为 /www)

chcon -R -u system_u /www
chcon -R -t httpd_sys_content_t /www

然后让它保留一个标签:

semanage fcontext -a -s system_u -t httpd_sys_content_t /www

我发现将 SELinux 上下文应用到目录时使用另一个目录作为模板更容易:

drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 www
[root@kvm0001 /]# chcon --reference=/var/www www
[root@kvm0001 /]# ls -laZ
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 www
[root@kvm0001 /]#

相关内容