首先,我想知道将 Apache 的虚拟主机彼此隔离的最佳方法是什么。我想这也与 Linux 文件系统有关,因为在同一个 Linux 用户/组下拥有文件夹(/var/www/site1.com/public_html
和文件)并不是一个好习惯。/var/www/site2.com/public_html
我发现了类似的帖子:Isolating Apache virtualhosts from the rest of the system,但注意到这是关于将虚拟主机与系统隔离开来。一个很好的做法,但不是我所说的。
我不想要任何site1.com
可以访问文件的可能方式,site2.com
如果可能的话,除了它自己的目录和子目录之外,文件系统也没有任何不必要的东西。
其次,chmod 对用户权限有什么影响。假设两个站点都在自己的用户和用户组中运行。但是site1.com
有一个文件或目录的 chmod 权限为 777。将site2.com
能够使用该文件/目录吗?
不是最好的解决方案,但可能是其中的一部分,也是最简单的:使用 suExec。
例如,使用 suExec,您可以轻松地为每个虚拟主机分配不同的 Unix 用户(最常见的场景)。如果您将这些用户的家设为私有(模式 0700),那么一开始这是一个很好的隔离。
它们没有被 chroot,并且仍将共享 /tmp,查看其他正在运行的进程等。但是您将至少比绝大多数配置非常糟糕的 LAMP 服务器高出一级。
还有一些技术优点/缺点:
关于你的第二个问题:使用私人住宅,你得到你想要的(chmod 0700 ~toto),但如果她愿意(运行 chmod 0777 ~toto),用户本身可能会公开自己的住宅,甚至可以全局写入。因此,这取决于您对服务器用户和应用程序的信任。