【发布时间】:2016-05-07 16:40:18
【问题描述】:
当通过 PHP 上传图片时,创建的结果文件具有不允许 Apache 在以后的请求中读取文件的权限。上传文件的示例权限如下所示:
--w-rw----+ 1 www-data www-data 76551 Jan 29 19:52 original.jpeg
包含文件夹的权限如下所示:
drwxr-xr-x+ 41 www-data www-data 4096 Jan 29 19:52 media
Apache 运行为 www-data 这个问题只发生在暂存阶段(当然)。在我的开发环境中,文件上传没有问题,因此不太可能是代码问题。我正在使用 Ubuntu 的 ACL,我怀疑这可能与它有关。
上传目录上getfacl的结果:
# file: web/media
# owner: www-data
# group: www-data
user::rwx
user:ubuntu:rwx #effective:r-x
group::r--
mask::r-x
other::r-x
default:user::-wx
default:user:www-data:rwx
default:user:ubuntu:rwx
default:group::r--
default:mask::rwx
default:other::--x
getfacl 对文件本身的结果:
# file: web/media/original.jpeg
# owner: www-data
# group: www-data
user::-w-
user:www-data:rwx #effective:rw-
user:ubuntu:rwx #effective:rw-
group::r--
mask::rw-
other::---
有什么想法吗?
【问题讨论】:
-
php 的umask 设置是什么?
-
我的第一个想法是使用umask,但你也可以尝试setfacl:unix.stackexchange.com/questions/1314/…
标签: php apache ubuntu file-upload permissions