![Apache:Mod_Ruid2-403 禁止访问](https://linux22.com/image/693215/Apache%EF%BC%9AMod_Ruid2-403%20%E7%A6%81%E6%AD%A2%E8%AE%BF%E9%97%AE.png)
Ubuntu + Debian/Apache 2.4
我一直在努力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 检查目录权限之前似乎RDocumentChRoot
chroot 了请求。因此,给出的路径<Directory>
应该是 chroot 内的路径,或者
<Directory "/cb.xxx.xx/public_html/">
Require all granted
RMode config
RUidGid cb cb
</Directory>