서버에서 생성된 하위 디렉터리에 대한 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

관련 정보