Apache:Mod_Ruid2-403 禁止访问

Apache:Mod_Ruid2-403 禁止访问

Ubuntu + Debian/Apache 2.4

我一直在努力mod_ruid2已经工作了一段时间。我认为我的基本配置有问题。

mod_ruid2 文档

确认一下,在安装 mod_ruid2 和更新 vHosts 之前,一切正常。

我通过 apt 安装了 mod_ruid2,并配置了一个 vHost 来使用 ruid,如下所示

apachectl 确认 ruid2 已加载。在使用 ruid 语法更新 vHost 后也通过了 configtest。

通过 useradd cb -M 创建用户和组“cb”以用作 vHost 用户。

这是 vHost

<VirtualHost *:80>
    ServerName cb.xxx.xx
    DocumentRoot /var/www/cb.xxx.xx/public_html/
    RDocumentChRoot /var/www /cb.xxx.xx/public_html
    RUidGid cb cb

    <Directory "/var/www/cb.xxx.xx/public_html/">
            Require all granted
            RMode config
            RUidGid cb cb
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

此时,vHost 提示 403 禁止访问。该目录之前归 www-data 所有 - 因此我运行了以下命令 -

chown -R cb:cb /var/www/cb.xxx.xx/public_html/ 

我遇到了同样的问题。每次我点击 cb.xxx.xx 时,调试级别的 Apache 日志都会显示以下内容 - 没有其他内容

[authz_core:error] [pid 3736] [client 31.53.4.77:63626] AH01630: client denied by server configuration: /cb.xxx.xx/public_html/

研究 AH01630 错误导致大多数其他错误在其 vHost 中没有“要求全部授予”,我有,并且 Apache 目录的 grep 确保所有其他 vHost 也都有这个。

我在 Debian 服务器上复制了同样的错误,并遇到了同样的问题。我认为这是我的 vHost 中 mod_ruid2 的配置有问题。具体来说,我认为是我配置的 ChRoot 不正确。

RDocumentChrRoot - Set chroot directory and the document root inside
RDocumentChRoot          /home /example.com/public_html

关于这个问题的文档似乎非常有限,而且我发现很少有人遇到类似的问题。有人可以分享一些想法吗?

它通常用于 cPanel/DirectAdmin 多租户场景 - 如果你有一个可以查看的工作配置,我将不胜感激

答案1

根据错误信息给出的路径

client denied by server configuration: /cb.xxx.xx/public_html/

Apache 检查目录权限之前似乎RDocumentChRootchroot 了请求。因此,给出的路径<Directory>应该是 chroot 内的路径,或者

<Directory "/cb.xxx.xx/public_html/">
        Require all granted
        RMode config
        RUidGid cb cb
</Directory>

相关内容