【问题标题】:Is there any reason files in apache's www-root must be owned by root user in a sandbox?apache的www-root中的文件是否必须由沙箱中的root用户拥有?
【发布时间】:2011-10-30 23:57:34
【问题描述】:

我正在解决一个权限问题,如果 Apache 的根文件夹中的所有文件都归用户 “root”所有,则可以解决该问题。由于这是一个沙盒,而且我是唯一一个在其中玩的人,所以没有任何人为冲突。如果我进行此更改,我会默默地破坏某些东西吗?

我从来没有质疑过 /home 之外的文件归系统的 root 用户帐户之外的任何其他用户所有。大多数时候更改权限确实会破坏事情,但思想。哦。多么淘气。哈哈哈。

【问题讨论】:

    标签: apache permissions root


    【解决方案1】:

    恐怕有点晚了,但我才发现这个。这里的 cmets 中有很多混淆/错误信息。在这些基本原则范围内,您可以为所欲为。我假设 httpd 用户和组(请参阅 httpd.conf 中的用户和组指令)是“apache”和“apache”;替代您自己的特定安装。

    1 - 要提供的文件必须可由用户 'apache' 读取

    2 - 目录必须可由用户 'apache' 搜索

    3 - CGI 程序必须可由用户 'apache' 运行

    4 - 用户 'apache' 不应拥有任何文件

    5 - 不应允许用户 'apache' 写入任何文件

    6 - 组 'apache' 不应被允许拥有或写入任何文件

    您的设置(root 拥有文件)是可以接受的,但在大多数设置中,必须修改文件(通过 ftp/etc)的人应该 (a) 拥有它们,或者 (b) 在对文件具有写入权限的组。

    想出一个满足所有这些标准的方案,你应该没问题。显然,不允许“其他人”拥有任何不必要的权限。但是,用户“apache”在“其他”中是正常的,因此文件通常需要其他人的读取权限。如果您希望检查,请在此处发布您的具体解决方案。

    【讨论】:

    • 像 Drupal 这样的 PHP 应用程序如何适合您的方案?它必须能够写入保存文件的目录。而且,php的文本转文件功能也需要写权限。
    【解决方案2】:

    没问题。只要组名设置为 Apache 用作组名的任何内容,您就可以将所有者更改为您的用户名。为什么?因为一周后我还是做到了。所以,到目前为止,什么都没有损坏。

    我在进行更改之前问了这个问题,因为我在测试服务器上使用了框架应用程序。如上所述,它安装在不同的所有者下。而且,几乎不可能在更改后将一个大文件夹的文件(并且这个框架有超过 3000 个文件)恢复到原始权限。

    【讨论】:

    • 我知道它现在不相关,但您不能只是将框架文件(全部 3,000 个,但无论如何)复制到某处以保留它们的权限吗?
    【解决方案3】:

    Apache 不会以 root 身份运行。因此 Apache 服务器无权写入 root 拥有的文件。如果您需要 apache 或 PHP 脚本的写入权限,则不应将 Web 内容存储为 root。

    您可能不需要 apache 脚本的写入权限,允许它可能会带来安全风险。这种风险可以通过使用 root 或任何通常编辑这些文件的用户来减轻。

    Apache 实例的用户名通常类似于 www-run www-dataapache

    【讨论】:

    • /var/www 中文件的原始所有者+组分别是root+apache和6226+6226...
    • @xtian 然后将所有权至少改回 apache 组
    • 您的评论建议apache 文件不应该归根用户所有。然而,我的服务器以 root 身份使用这些文件。该组是用户“apache”——我从来没有改变它,我也不在乎。如果问题是“Apache 的根服务器页面 (www-runwww-dataapache) 是否可以由任何用户拥有并且仍然功能?”
    • root 拥有 apache 文件没有安全风险,但让普通用户拥有它们更为实际,这样您就不需要特殊权限来处理文件。
    猜你喜欢
    • 2016-12-28
    • 1970-01-01
    • 2021-10-28
    • 2018-06-28
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    相关资源
    最近更新 更多