允许访问主目录为Apache而不是其他用户?

我build立一个自动pipe理专用服务器的网站。 它做各种各样的东西,如创build用户和Apache设置指向他们的主目录。

主目录主机游戏二进制文件,主文件夹可以从networking访问,但只有非必要的资源文件(.wav .mdl .spr等)可以访问,这就是如何configurationApache。 所以为了这个工作,我需要执行和读取所有文件的权限

问题是运行在一个用户的主文件夹中的二进制文件可以访问其他用户的主文件夹,读取和写入文件。

我怎么能让一个用户的主目录无法访问其他人,但他和通过Apache? 以下是文件夹树的外观:

http://i.imgur.com/LVFMle2.png (无需直接显示图片)

在每个用户的主目录上设置一个ACL,Apache需要访问该目录。 这可以让你避免与团体愚蠢的诡计,这实际上可能导致更多的问题比他们解决。

例如:

setfacl -R -mu:httpd:rx,d:u:httpd:rx /home/username 

将允许httpd用户读取该目录中的所有内容,包括子目录和任何新创build的文件。

我build议每个用户的主目录都由用户和用户组拥有,只有用户和组才能进入目录(770),然后使Apache成为每个用户组的成员。

此外,一定要实施一些forms的符号链接攻击保护(请参阅https://documentation.cpanel.net/display/EA/Symlink+Race+Condition+Protection的一些选项 – 此链接不只适用于cPanel)。

一个简单的方法,不需要符号链接攻击保护,如果你不介意速度命中(另见主页上的“Quirks and Warnings”),则可以使用MPM ITK。 在这种情况下,Apache作为每个单独的网站用户运行。

您还可以检查多站点托pipe – 重要的漏洞被遗漏,以确保互相之间的网站? 讨论多站点主机安全和其他一些方法。

免责声明:我不能保证上面的任何build议是100%安全的,所以使用风险自负=)。