我正在运行 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 /]#