为什么我们需要像
Require user <name or UID>
Not require user <name or UID>
Require group <name or GID>
Not require group <name or GID>
Require ip <network IP>
Not require ip <network IP>
Require host <hostname>
Not require host <hostname>
Require all granted
Require all denied
Require local
当我们拥有所有权、许可和防火墙时。
答案1
文件权限
Apache(任何其他应用程序)所提供服务的文件的权限和所有权决定了该应用程序可以读取、写入和执行的内容以及不能读取、写入和执行的内容。这在访问资源时强制执行。
防火墙
防火墙使用定义的访问控制列表来控制接口(通常是网络接口)之间的进出数据,以将通信限制在受信任的方。这在传输入站和出站时强制执行。
Apache 访问控制
Apache 访问控制是对所服务资源的更细粒度控制。它还允许更细粒度地将权限委托给 Apache,而不依赖于其他系统执行。
例子
示例 1:我想允许所有用户访问 wordpress 网站,但我只希望受信任的 IP 访问 wp-admin。
/wp-admin
在这种情况下,我将在配置中(或.htaccess
目录中的文件中)为目录配置以下内容。
<Directory /wp-admin>
Order deny,allow
Deny from all
Allow from x.x.x.x
</Directory>
示例 2:我只想允许群组成员将数据发布到我的网站
我将使用以下命令配置 apache
<LIMIT POST>
AuthType Basic
AuthName "Posty Mc Post Face"
# Optional line:
AuthBasicProvider file
AuthUserFile "/usr/local/apache/passwd/passwords"
AuthGroupFile "/usr/local/apache/passwd/groups"
Require group canPostApacheGroup
</LIMIT>
以下示例
每个示例都有一个防火墙,允许流量通过 apache,并且操作系统权限允许 apache 访问操作系统上的资源,但现在有特定于应用程序的配置来限制用户可以在应用程序上执行的操作。