我正在使用 Ubuntu 18.04 桌面环境。
我已经在 Apache 2 服务器上设置了多个网站,文件夹中有多个网站/var/www/
(每个网站都在自己的文件夹中)
使自己成为所有者并将 www-data 指定为组:sudo chown $USER:www-data -R /var/www
固定权限:sudo chmod -R 774 /var/www
一切正常,直到我添加文件或添加新网站(git pull)。新文件不会随 www-data 组一起出现。不允许 Apache 运行。
这可以通过重新执行来修复sudo chmod -R 774 /var/www
,但这感觉不像是一个修复。
我做错了什么?
编辑:它似乎git pull
不尊重我之前设置的权限。即使父文件夹的权限设置正确。
答案1
您需要为所有文件夹设置 setgid 位:
chown $USER:www-data -R /var/www
chmod -R g+s /var/www
然后,在“setgid 文件夹”中创建的每个新文件都将具有父文件夹的组。创建文件的用户必须属于 www-data 组。
WWW 文件的权限可以仅限于您的用户(读写)和 www-data 组(只读),而其他人则没有任何权限:
chmod -R u=rwX,g=rs,o= /var/www