首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于服务器创建的子目录的setfacl问题

关于服务器创建的子目录的setfacl问题
EN

Server Fault用户
提问于 2015-10-10 13:33:05
回答 1查看 528关注 0票数 0

在继承由服务器执行的PHP脚本创建的文件夹的父权限方面,我面临问题。

我已经创建了部署程序用户,添加到www-data组,并设置初始文件夹和文件配置,如下所示。

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
user  = www-data
group = www-data

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

我执行了setfacl命令如下:

代码语言:javascript
运行
复制
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脚本试图在部署人员用户创建的存储文件夹中创建文件夹时,新创建的文件夹不会继承父权限。

代码语言:javascript
运行
复制
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

我遗漏了什么?

EN

回答 1

Server Fault用户

发布于 2015-10-12 15:39:09

我不是PHP开发人员,但作为sysadmin,我可以告诉您,有解决办法可以解决您正在处理的问题。为了授予PHP动态创建文件的特定权限,可以使用ACL设置默认权限,也可以使用PHP chmod设置默认权限:

代码语言:javascript
运行
复制
   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选项将该目录设置为默认提供/给定权限,因此在那里创建的任何内容都将具有该默认权限。

为了更好地了解你想要的是什么,请查看这里:

代码语言:javascript
运行
复制
   http://php.net/manual/en/function.umask.php
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/728087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档