限制对虚拟主机的访问

restrict access to virtualhost

我有 3 个简单的虚拟主机:

<VirtualHost *:80>
  DocumentRoot /var/www/example1.com/public_html
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /var/www/example2.com/public_html
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /var/www/example1-example2-log.com/public_html
</VirtualHost>

嗯,我的问题是,如何设置:

Example1.comexample2.com可以,include, require to example1-example2-log 和自己的目录,但不能写入、包含、要求彼此的目录。

添加 ServerName 指令后,您可以在 /var/www 目录下执行此操作:

-rwxr-x---     u1:g1       /var/www/example1.com
-rwxr-x---     u2:g1       /var/www/example2.com
-rwxrwx---  httpd:httpd    /var/www/example1-example2-log.com
  • 创建一个 u1 用户和 g1 组。
  • 创建一个 u2 用户和 g2 组。
  • 使用户 httpd 成为 g1 和 g2 组的成员。
  • 使用户 u1 和 u2 成为组 httpd 的成员

这样:

  • u1:可以访问 example1.com(u1 是所有者 == rwx)
  • u1: 可以完全访问 example1-example2-log.com (group httpd == rwx)
  • u1:无法访问 example2.com(其他 = ---)
  • u2:可以访问 example2.com(u2 是所有者 == rwx)
  • u2: 可以完全访问example1-example2-log.com (group httpd == rwx)
  • u2: 无法访问 example1.com (others = ---)
  • httpduser 可以访问所有目录(组 g1 和 g2 == r-x,组 httpd = rwx)

换句话说:

  • 只有 u1 可以完全访问他的文件
  • 只有 u2 可以完全访问他的文件
  • httpd 可以读取 所有文件(这是必需的,因为 Apache 需要能够读取文件才能为客户端提供服务)
  • u1 和 u2 可以完全访问 httpd 的文件。
  • 但是 u1 无法访问 u2 的文件(反之亦然)