Apache vs用户文件所有者



(unix/linux)

通常在我们许可的本地开发环境中,这确实很烦人,因为有时候我们认为代码错误只是Apache无法访问的文件。

主要问题是某些文件是由Apache创建的(因此Web应用程序)是由开发人员(IDE或EDITOR)创建的

我使用它将用户添加到Apache组的解决方案:

-sudo usermod -a -G www-data <username> -sudo chgrp -R www-data /var/www

问题是,当我使用IDE创建一个新文件时,文件具有[我的用户]/[我的用户]作为所有者,而Apache则无法读取这些文件(取决于权限S标志)因此,我被迫重新执行sudo chgrp -R www-data /var/www

任何解决方案可以避免这种方法?

三个主要解决方案

设置用户ID/SET组ID

sudo chmod -R 2750 www-data /path

使用AssignUserId(特权分离)

使用Apache ITK
<IfModule itk.c>
  AssignUserId www-data www-data
</IfModule>

将Apache添加到您的IDE组(不推荐)

侧注

设置用户ID可能是危险的,因为用户(Apache,几乎全世界)可以使用授予其不同(enanded)特权的文件来获得额外的特权,因此您可以完全了解您在做什么

我找到了这个问题:要求有所不同,但答案看起来是一个解决方案,在这里他们说的话(kahwee teng):

您将自己添加到小组中:

sudo usermod -a -G www-data <username>

将组更改为www-data,以防万一您没有:

sudo chgrp -R www-data /var/www

获取新文件以继承权限(775)(粘性位)

sudo chmod -R 2775 /var/www

关键是最后一步(2775)

最新更新