我在使用 Nginx 和 php-fpm 在 Debian 10 上运行的网站上设置缓存目录的正确权限时遇到问题。
我有一个用户“myuser”,其主目录是 /var/www/mydomain.tld 目录的结构是:
drwxr-x--- 2 myuser myuser 4096 Jan 3 20:24 backups/
drwxrwx---+ 4 myuser myuser 4096 Jan 5 21:10 cache/
drwxr-x---+ 2 myuser myuser 4096 Jan 5 00:00 logs/
drwxr-x--- 5 myuser myuser 4096 Jan 3 20:27 public/
我配置了一个 fpm 池来使用此用户,并将 Nginx 添加到 myuser 的组中。我还为组添加了对缓存目录的写入权限,以便 Nginx 可以在那里写入。最后,我在目录上设置了一些 acl,以授予 myuser 对 Nginx 创建的文件的写入权限。
# file: var/www/domain.tld/cache
# owner: myuser
# group: myuser
user::rwx
group::rwx
other::---
default:user::rwx
default:user:myuser:rwx
default:group::rwx
default:mask::rwx
default:other::---
但是当 Nginx 创建一些目录时,我的用户无法访问它。创建的目录不会继承默认掩码,而是使用“---”,导致我的 acl 不起作用。
drwx------+ 3 nginx nginx 4096 Jan 6 18:55 3
drwx------+ 3 nginx nginx 4096 Jan 6 19:16 9
drwx------+ 3 nginx nginx 4096 Jan 6 18:55 d
# file: var/www/domain.tld/cache/d
# owner: nginx
# group: nginx
user::rwx
user:myuser:rwx #effective:---
group::rwx #effective:---
mask::---
other::---
default:user::rwx
default:user:myuser:rwx
default:group::rwx
default:mask::rwx
default:other::---
我在这里遗漏了什么?