【问题标题】:AH00035: access to / denied (filesystem path '/Users/xxx/Documents/workspace') because search permissions are missing on a component of the pathAH00035:访问/拒绝(文件系统路径'/Users/xxx/Documents/workspace'),因为路径的组件上缺少搜索权限
【发布时间】:2017-09-05 04:40:17
【问题描述】:

尝试在我的 Mac 上设置 localhost 并在 /etc/apache2/httpd.conf 中进行以下更改

DocumentRoot "/Users/xxx/Documents/workspace/firstRepo/htdocs"
<Directory "/Users/xxx/Documents/workspace/firstRepo/htdocs">

我知道这与 dir 权限有关,所以我按照网上的建议运行了以下命令:

find /Users/xxx/Documents/workspace -type d -exec chmod 755 {} \;
find /Users/xxx/Documents/workspace -type f -exec chmod 644 {} \;

这里没有运气。有人可以帮我弄这个吗?谢谢。

【问题讨论】:

    标签: apache permissions localhost httpd.conf


    【解决方案1】:

    Unix 权限不仅仅是“目标权限”,您需要对整个路径的“搜索”权限,直到最后一个目录,正如来自 Apache 的消息所述

    搜索权限意味着,简而言之,目录中至少缺少“x”,因此 apache 正在使用的非特权用户可以遍历整个路径,直到到达“/Users/xxx/Documents/workspace/firstRepo/htdocs”。

    你可以试试这个命令来确保你拥有它们:

    namei -mol /Users/xxx/Documents/workspace/firstRepo/htdocs
    

    只有在权限正确的情况下无法访问的其他情况是 SELinux 正在控制对这些目录的访问。

    Apache wiki 有一个关于此的文档,因为许多人对权限在 Unix 下的工作方式感到困惑。 Permissions

    【讨论】:

    • 谢谢。在 mac OS 中找不到 namei 命令。但我发现问题是因为 /Users/xxx 文件夹只有所有者的权限。我通过chmod +x /Users/xxx修复了它
    • SELinux 是我的问题,将其更改为允许强制执行并且它有效。 sudo setenforce 0
    • 权限链接已失效:|
    • @m02ph3u5 感谢您的报告,我已修复链接。
    猜你喜欢
    • 2017-07-24
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 2019-03-17
    相关资源
    最近更新 更多