我认为 Centos 7 Selinux 问题?php 无法读取或写入

我认为 Centos 7 Selinux 问题?php 无法读取或写入

我有一个用于我的网络应用程序的上传文件夹:/disk2/app/uploads

ls -Z 返回:

drw-r--r--. apache apache unconfined_u:object_r:httpd_sys_rw_content_t:s0 uploads

ls -Z /返回:

drwxrwxrwx. root root system_u:object_r:file_t:s0      disk2

ls -Z /disk2返回:

drwxr-xr-x. apache    apache    unconfined_u:object_r:file_t:s0  app

我从这里

当我is_writable('/disk2/app/uploads')在 php 中运行时它返回false

我尝试了能想到的所有可能性来找出答案。

相关审计日志:

type=AVC msg=audit(1510944045.012:202923): avc:  denied  { getattr } for  pid=14017 comm="httpd" path="/disk2/app/uploads/12222/206/1496103427-20170526_151922.jpg" dev=sdb ino=17826039 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:file_t:s0 tclass=file
type=AVC msg=audit(1510944045.012:202924): avc:  denied  { write } for  pid=14017 comm="httpd" name="uploads" dev=sdb ino=2097155 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:file_t:s0 tclass=dir

答案1

您需要配置 SELinux 文件上下文,以便在创建文件时正确设置它们。文件通常会继承其父目录的 fcontext,因此您需要正确指定它。例如

semanage fcontext -a -t httpd_sys_rw_content_t "/disk2/app/uploads(/.*)?"
restorecon -Rv /disk2/app/uploads

應該去奪诀。

相关内容