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

Ste*_* RC 4 permissions apache2 home-directory

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

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

但是,这会在 apache 中引发403 Forbidden错误。

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

drwxrwxr-x  2 valorin www-data  4096 2011-04-23 10:02 workspace
Run Code Online (Sandbox Code Playgroud)

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

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

Sco*_*nce 7

您可以单独保留您的 $HOME 目录所有权。您不需要将其设置为 www-data。什么你必须做的是确定Apache对$ HOME,一切都在它上面执行权限。所以,你可以做这样的事情:

chmod 751 "$HOME"
sudo chmod 751 /home
Run Code Online (Sandbox Code Playgroud)

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

编辑:

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

  • 他们还需要读取权限。 (2认同)