无法读取/写入新创建的文件 linux

无法读取/写入新创建的文件 linux

我已经在 Linux 服务器上设置了 Laravel,我的 apache 由 root 拥有,www 由 www-data 拥有,并且存储目录中创建的任何新文件都由 root 用户拥有,下面是屏幕截图权限对于 /var/www/website/ 内的所有目录

这些是 storage/logs 目录中的权限。新创建的文件归 root 用户所有。现在,Web 服务器无法打开此文件进行写入,这会导致网站出现错误。我不确定这种情况是在 root 拥有文件时发生的,还是在什么时候发生的。但我一直忽略这个问题,并一直使用命令进行临时修复

sudo chmod -R 775 storage或者sudo chown www-data:www-data storage

我想彻底修复这个错误。供参考这些 /etc/ 目录中的权限

答案1

ACL 可让您添加其他用户权限 - 例如,文件可能归 www-data 所有,但其他用户可以拥有其读/写权限。要进行设置:

安装 acl(apt install acl)。然后在 fstab 文件中,添加 acl 作为选项。例如:

/dev/sda / ext3 noatime,errors=remount-ro,acl 0 1

然后重新挂载:

mount -a

如果您更改了所有备份到 www-data 的文件的所有权,请将其更改为这些文件。为稍后创建的任何文件设置默认“acls”:

setfacl -dm u:myname:rwx /var/www

...并在已经存在的文件上设置 acl:

setfacl -m u:myname:rw

...和目录

setfacl -m u:myname:rwx

相关内容