允许 apache 访问主目录中的子目录,而无需访问主目录

允许 apache 访问主目录中的子目录,而无需访问主目录

我正在运行带有加密主目录的 Ubuntu 11.04 桌面版。我在计算机上进行开发工作,并且希望将我的 webroot 目录放在我的主目录中,以便它与我的主目录的其余部分一起加密。由于我是这台机器的唯一使用者,因此我希望将 Apache 配置为直接指向它。

目前,我已将/var/www文件夹更改为指向我的工作目录中工作区的符号链接:/home/valorin/workspace

然而,这引发403 禁止apache 中的错误。

我已将我的用户添加到www-data组中,并设置了工作区文件夹的所有权和权限:

drwxrwxr-x  2 valorin www-data  4096 2011-04-23 10:02 workspace

但让它工作的唯一方法是将我的主目录组更改为 www-data 并设置权限。我真的不想这样做,因为这意味着 Apache 可以访问我的主目录,并且可能被我网络上的某人用来获取我的个人数据。

有谁知道我该如何解决这个问题?

答案1

您可以保留 $HOME 目录所有权。您无需将其设置为 www-data。您需要做的要做的就是确保 Apache 对 $HOME 及其上方的所有内容具有执行权限。因此,您可以执行以下操作:

chmod 751 "$HOME"
sudo chmod 751 /home

但是,$HOME 被加密的事实可能会给 Apache 带来重大问题,除非您能以某种方式配置 Apache 以使用正确的解密密钥。

编辑:

设置目录的执行权限仅意味着如果您已经知道目录名称并且您尝试访问的内容也具有正确的权限,则可以访问目录中的内容。因此,只要您的所有其他文件都具有合理的权限,在 $HOME 上设置全局 x 位就不会带来太大的安全风险。您可能需要查看您的 umask 以确保万无一失。

相关内容