对 /var/www 设置权限对于子目录和文件不起作用

对 /var/www 设置权限对于子目录和文件不起作用

我关注了这些指示(在接受的答案中)用于设置我的 /var/www/ 文件夹的权限。

我正在按照说明使用 www-data 组。jdownes 和 testuer1 都是该组的成员。

当 jdownes(或任何其他 www-data 成员)在 /var/www 中创建文件时,他们可以正常编辑该文件。如果 www-data 组中的另一个用户(testuser1)去编辑并保存该文件,他们可以保存但会出现以下错误。

在此处输入图片描述

这是 /var/www 的权限以及文件的权限...

在此处输入图片描述

我有服务器的 root 访问权限,并且一直使用 putty 而不是 winscp 设置所有权限。问题是新文件的所有者不是 www-data 吗?如果是这样,我如何强制所有新文件使用 www-data 作为所有者?

答案1

这是您需要做的,假设www-dataapache 正在运行的用户和组是,并且/var/www所有者是您,而组是 www-data

chmod 755 /var/www
chmod g+s /var/www

(set groupid chmod g+s) 将确保新文件与文件夹具有相同的组/var/www( www-data)。chmod 755 /var/www确保 apache(通过 www-data 组)可以读取该文件夹,并且用户具有读写访问权限。您需要拥有足够的权限才能执行此操作。

在 WinSCP 中至少设置组 RX 和用户 RWX,并为文件夹设置 GID /var/www

apache 失败的原因是该文件夹的用户和组缺少 X 位(是 0664,应该是 0755),所以无法读取(=执行)该文件夹。

对于文件来说,644 就足够了:您不需要设置 GID。

相关内容