проблема setfacl в подкаталогах, созданных сервером

проблема setfacl в подкаталогах, созданных сервером

У меня возникли проблемы с наследованием родительских разрешений для папок, созданных PHP-скриптом, который выполняется сервером.

Я создал пользователя-развертывателя, добавил его в www-dataгруппу и задал начальную конфигурацию папки и файла, как показано ниже.

usermod -a -G www-data deployer
chown -R www-data:www-data /var/www
chmod -R 0775 /var/www
find /var/www -type d -exec chmod 2775 {} +;   
find /var/www -type f -exec chmod 0664 {} +;

Отредактировал php5-fpm.confфайл, как показано ниже, добавив umask 0002.

umask 0002
pre-start exec /usr/lib/php5/php5-fpm-checkconf
respawn
exec /usr/sbin/php5-fpm --nodaemonize --fpm-config /etc/php5/fpm/php-fpm.co

И это связанная часть моего /etc/php5/fpm/pool.d/www.conf, пользователя nginx тоже www-data.

user  = www-data
group = www-data

listen = /var/run/php5-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666

Я выполнил команду setfacl следующим образом:

setfacl -Rm u:www-data:rwx,u:deployer:rwx,g:www-data:rwx /var/www/site/storage
setfacl -Rdm u:www-data:rwx,u:deployer:rwx,g:www-data:rwx /var/www/site/storage

Однако когда PHP-скрипт, выполняемый сервером, пытается создать папку в папке хранилища, созданной пользователем-развертывателем, вновь созданные папки не наследуют родительские разрешения.

drwxrwsr-x+ deployer www-data storage
drwxr-sr-x+ www-data www-data storage-cache-folder 
drwxr-sr-x+ www-data www-data storage-cache-folder-subfolder

Что я упускаю?

решение1

Я не разработчик PHP, но как системный администратор могу сказать, что есть обходной путь для решения вашей проблемы. Чтобы предоставить определенное разрешение динамически создаваемым файлам PHP, вы можете либо установить разрешение по умолчанию с помощью ACL, либо с помощью PHP chmod:

   chmod($file, 0777); for example (change it whatever perm you'd like)

   setfacl -d -m o::rwx /var/www/site/storage (or add the group/user you'd like)

Параметр ACL -d установит для этого каталога разрешения по умолчанию, поэтому все созданное в нем будет иметь эти разрешения по умолчанию.

Проверьте здесь, чтобы лучше понять, что именно вам нужно:

   http://php.net/manual/en/function.umask.php

Связанный контент