【问题标题】:Issue with www-data and group read for site folder站点文件夹的 www-data 和组读取问题
【发布时间】:2016-10-20 01:29:32
【问题描述】:

我正在锁定一些权限,现在 nginx 无法查看我的网站

背景:

  • 我使用 mysite 用户部署和运行 CLI。
  • 我希望 mysite 和 www-data 都可以访问该站点的文件夹 mysite 和 www-data 用户
  • 都属于 www-data 组:

root@dev:~# groups mysite mysite : mysite www-data root@dev:~#

root@dev:~# groups www-data www-data : www-data

文件夹(有组权限)

drwxrwx--- 3 mysite www-data 4096 Jun 26 14:12 sites/

www-data 试图访问它:

root@dev:~# sudo -u www-data stat /home/mysite/sites/ stat: cannot stat ‘/home/mysite/sites/’: Permission denied

www-data 可以正常看到父文件夹:

root@dev:~# sudo -u www-data stat /home/ File: ‘/home/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd01h/64769d Inode: 1179649 Links: 3 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-10-19 10:59:05.845267219 -0400 Modify: 2016-06-26 14:12:24.890310000 -0400 Change: 2016-06-26 14:12:24.890310000 -0400 Birth: - root@dev:~# sudo -u www-data stat /home/mysite/ File: ‘/home/mysite/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd01h/64769d Inode: 1180062 Links: 10 Access: (0770/drwxrwx---) Uid: ( 1000/ mysite) Gid: ( 1000/ mysite) Access: 2016-10-19 10:59:10.081267219 -0400 Modify: 2016-10-19 10:35:01.221267219 -0400 Change: 2016-10-19 10:35:01.221267219 -0400 Birth: -

我还检查了 SELinux 是否在搞乱它

root@dev:~# setenforce 0 setenforce: SELinux is disabled

我也试过了:

chown www-data:www-data /home/mysite/sites/

2016 年 10 月 19 日更新: 在“站点”所属的文件夹上设置 acl 可以按照我设置的方式工作:

setfacl --modify=g:www-data:x /home/mysite

【问题讨论】:

    标签: apache .htaccess ubuntu nginx


    【解决方案1】:

    任何 Web 服务器都需要对包含该站点的所有父目录的可执行权限(但不能读取)。像这样在主目录上设置 ACL。

    您也可以将 /home/mysite 的组更改为 www-data 并将该目录的权限锁定为 710。

    另一种解决方案是将站点目录移动到比主目录限制更少的位置,例如 /var/www,但保留站点目录上现有的锁定权限。

    我可能会选择您的解决方案,或者将网站移至 /var/www

    【讨论】:

      【解决方案2】:

      在“站点”所属的文件夹上设置 acl 可以按照我设置的方式工作:

      setfacl --modify=g:www-data:x /home/mysite
      

      【讨论】: