Apache2 无法列出未设置 o+r 的目录或文件

Apache2 无法列出未设置 o+r 的目录或文件

我有一个 Apache Web 服务器,我们正准备通过更方便的 HTTPS 协议向客户提供通过 FTP/S 上传的数据。目前,我使用 mod_authnz_external 允许用户进行身份验证,但一旦通过身份验证,用户就无法查看其主目录中“其他”权限设置为零的文件。我不确定为什么会这样,因为如果用户通过了身份验证,我希望他们能够看到属于他们自己的用户和组的文件。

为了解决这个问题,我还尝试将 Apache 用户“www-data”添加到所有有权读取其自己主目录中文件的用户名组(作为次要组)。但是,这不允许用户在登录网站时查看自己的文件,但如果我以“www-data”的身份获得 shell 访问权限并从终端浏览主目录,则可以查看这些文件。

我需要知道我可能做错了什么,以及如何实现通过 Apache 提供用户主目录内容的最终结果,而无需向其他人授予权限。任何有关这方面的帮助都将不胜感激,谢谢。

答案1

>_< 我是个白痴……在将 www-data 添加到用户组后,我从未重新启动过 apache2 服务。因此,使此操作有效的过程是

usermod -aG user-group www-data
service apache2 restart

请记住,我在 Debian 8 上运行它,但运行如下重新加载似乎有效,而无需重新启动 Apache,也无需终止现有连接:

service apache2 reload

您必须将 Apache 用户(在我的情况下为“www-data”)添加到有权读取目录的用户组的原因是,authnz_external 仅表示允许用户访问服务器,所有内容仍以“www-data”的形式遍历。

相关内容