我已将ubuntu
用户添加到www-data
组并设置文件夹权限如下:
sudo gpasswd -a "$USER" www-data
find /var/www -type f -exec chmod 0640 {} \;
sudo find /var/www -type d -exec chmod 2750 {} \;
我可以验证ubuntu
已添加到组(正在运行groups
显示ubuntu www-data
)。我可以以身份访问和读取 /var/www 目录中的任何文件和目录ubuntu
。
我想授予写授予ubuntu
用户在某些目录中的权限。运行sudo chmod -R g+w /var/www/public/uploads/
将授予ubuntu
对此文件夹的写入权限。
问题是,当www-data
在中创建新目录时/var/www/public/uploads/
,ubuntu
没有权限在这些新创建的目录中进行写入。
也就是说,当www-data
创建时/var/www/public/uploads/some-new-folder/
,ubuntu
不能触碰中的文件some-new-folder
。
我如何更改权限,以便在特定路径中创建的任何文件和目录也www-data
可以被写入?ubuntu
答案1
您可以使用父文件夹(在本例中为“uploads”)的“setgid”位,并且其中创建的任何文件都将具有指定的组成员身份,无论创建者是谁。命令如下。这是我在“setgid”上找到的一篇好帖子:http://www.toptip.ca/2010/03/linux-setgid-on-directory.html
使用 chmod 设置 gid: sudo chmod g+s /var/www/public/uploads/ <你的团队>
希望有帮助!