无法使用“ubuntu”用户在“/var/www”下创建文件

无法使用“ubuntu”用户在“/var/www”下创建文件

我已将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/ <你的团队>

希望有帮助!

相关内容