【问题标题】:Apache giving 403 forbidden errors when accessing files in 'Sites' folderApache 在访问“站点”文件夹中的文件时给出 403 禁止错误
【发布时间】:2014-03-05 16:33:00
【问题描述】:

恐怕还有另一个 Apache 403 问题,但这里的问题更具体一些。我收集到我遇到的错误

(13)权限被拒绝:访问 /~Rax/ 被拒绝(文件系统路径“/Users/Rax/Sites”),因为路径的组件上缺少搜索权限

can be fixed 通过授予User (_www) 路径上的每个目录的执行权限/private/etc/apache2/httpd.conf 中指定。但这似乎很疯狂:这意味着_www 对我的主目录具有执行权限。这真的是正确的方法吗?有没有办法通过某种间接方式(“跳过”/Users/Rax/)到达Sites 文件夹?

【问题讨论】:

  • 显然_www 需要Sites 的这些权限,以便Apache 可以从该目录提供服务,但Rax 需要相同的权限,my 用户目录,只是没有'听起来不正确(或不明智)。

标签: macos apache permissions osx-mavericks


【解决方案1】:

这不是 Apache 制造的——在您的系统上执行 man 7 path_resolution。解决它的三种方法是使您的主目录成为世界可执行文件、使您的主目录组成为可执行文件并与您的网络服务器用户 ID 共享一个辅助组,或者将您的内容移出您的主目录。

【讨论】:

  • 是的,我一直在研究它,似乎没有办法解决它。我使用我机器上的服务器进行开发,所以我现在设置的是一个脚本脚本,当我需要服务器时执行chmod -v o+X /Users/Rax; sudo apachectl start,完成时执行chmod -v o-x /Users/Rax; sudo apachectl stop
  • 而且无论如何,+x/Users/Rax 所做的只是让其他人列出内容,对吧?所以我所做的就是让人们看到每个人都知道的东西(标准的 Mac 文件夹)。或者他们可以通过-x 进一步浏览我的文件吗?
  • 是的,但是当你有 -x 时,你不需要担心那里的文件的可读性,所以这并不是我认为无害的东西。
  • 我认为这是正确的,但可能不是 100% 可靠地阻止某人进入(例如,如果您新的文件名超过文件名,而无法查看其目录)。最好是您期望不可读的内容实际上是不可读的,但是在您最信任的系统上,您可能只是依赖于 $HOME 上的权限
  • 如果/Users/Rax 是drwx-----x,/Users/Rax/subdir 是drwx------,那么其他猜不出“subdir”这个名字的用户就不能用它做任何事情;其他可以猜到/知道名称 subdir 的用户可以看到文件夹的属性(例如它的权限),但根本看不到它。如果 subdir 是 drwx-----x,那么知道/可以猜到名称“subdir”的其他人只有在知道/可以猜到 他们的 名称时才能与文件/子文件夹交互。如果 subdir 是drwx---r-r,其他知道/猜到“subdir”名称的人将能够看到 subdir 下项目的名称,但不能与它们交互。
猜你喜欢
  • 2018-12-11
  • 2016-03-25
  • 1970-01-01
  • 2013-08-29
  • 2014-08-12
  • 2016-08-28
  • 2016-10-22
  • 2020-01-07
  • 2012-07-26
相关资源
最近更新 更多