建议 apache 拥有 ~/public_html 的所有权吗?

建议 apache 拥有 ~/public_html 的所有权吗?

以前曾有人在这里询问和回答过类似问题,但我更倾向于从我列出的选项中寻找最佳实践。

我正在运行 Apache 并希望允许使用 ~/public_html - 但我有点怀疑 public_html 的正确/最佳所有权。据我所知,我有以下选择:

  • myuser:myuser,但使用 ACL 为 www-data 用户和/或组添加访问权限。
  • 我的用户:www-数据
  • www-data:www-data 和...
    • 将 myuser 添加到 www-data 组。
    • 使用 ACL 为 myuser 用户添加访问权限。

第三个选项的明显缺点是,我不是目录的所有者,必须依靠 root 进行中继。(好吧,在这种情况下,root 就是我自己,但事情的原理是......)

我想我也应该使用chmod g+s public_html(或类似的 ACL),以便组所有权可以被子目录继承。

那么哪个是推荐/默认选项?另一个选项是否更适合我?

答案1

  • public_html应该由其主目录所在的用户拥有,并且至少应该是全世界可搜索的,或者交替地,组 www-data 和组可搜索(并且 g+s 不是一个坏主意,但用户将无法在没有帮助的情况下设置其中任何一个)。
  • 主目录应可供全世界搜索,而子目录如果是私有的则不应如此。但人们记不住要修复子目录权限,因此默认设置已更改为使主目录不可供全世界搜索。这是一种折衷,可以由用户调整,或者您可以使用 ACL 至少授予 www-data 对主目录的访问权限,以便 Web 服务器可以访问 public_html。用户的主目录中通常还有其他要发布的内容,因此将主目录设为私有会破坏这些内容。
  • 如果用户不在 www-data 组中(可能也不该在),那么此权限与 ACL 一样脆弱。这意味着用户可能会意外删除此权限,并且无法将其恢复。

不幸的是,每种相互冲突的策略都有其充分的理由,因此没有一个可以涵盖所有情况的好的解决方案。

相关内容