【问题标题】:Apache vs User file ownerApache vs 用户文件所有者
【发布时间】:2014-03-04 16:10:55
【问题描述】:

(UNIX/LINUX)

通常在本地开发环境中,我们需要获得许可,这真的很烦人,因为有时我们认为代码错误只是 apache 无法访问的文件。

主要问题是某些文件是由 Apache(因此是 Web 应用程序)创建的,而其他文件是由开发人员(IDE 或编辑器)创建的

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

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

问题是,当我使用我的 IDE 创建一个新文件时,这些文件以 [my user]/[my user] 作为所有者,有时 apache 无法读取这些文件(取决于权限标志) 所以我不得不重新执行sudo chgrp -R www-data /var/www

有什么办法可以避免这种情况?

【问题讨论】:

  • 看一下文件权限中的“sticky bits”。

标签: apache development-environment


【解决方案1】:

我发现了这个question:要求不同的东西,但答案看起来是一个解决方案,这里是他们所说的(KahWee Teng):

您将自己添加到组中:

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

将组更改为 www-data 以防万一:

sudo chgrp -R www-data /var/www

获取新文件以继承权限 (775) (sticky bit)

sudo chmod -R 2775 /var/www

关键是这最后一步(2775)

【讨论】:

    【解决方案2】:

    三个主要解决方案

    设置用户 ID/设置组 ID

    sudo chmod -R 2750 www-data /path
    

    将 apache ITK 与 AssignUserId 一起使用(权限分离)

    <IfModule itk.c>
      AssignUserId www-data www-data
    </IfModule>
    

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

    旁注

    设置用户 ID 可能具有潜在危险,因为用户(apache,几乎全世界)可以通过使用授予他们不同(强化)特权的文件来获得额外特权,因此您必须完全知道自己在做什么

    【讨论】:

    • sudo chmod -R 2750 www-data /var/www 是粘性位吗?
    猜你喜欢
    • 2011-12-09
    • 2013-11-13
    • 2014-03-18
    • 1970-01-01
    • 2018-05-20
    • 2014-02-23
    • 2012-10-29
    • 2011-04-09
    • 2011-10-26
    相关资源
    最近更新 更多