以下是CentOS下Apache2权限设置的核心技巧,涵盖用户、文件、配置及安全层面:
apache
或httpd
,可通过ps aux | grep httpd
查看。sudo groupadd webadmin
sudo usermod -aG webadmin apache # 将Apache用户加入自定义组
sudo chown -R apache:apache /var/www/html # 确保Apache用户组拥有网站目录
755
(所有者可读/写/执行,其他用户仅读/执行)sudo chmod -R 755 /var/www/html
644
(所有者可读/写,其他用户仅读)sudo find /var/www/html -type f -exec chmod 644 {} \;
sudo chmod 600 /var/www/html/config.ini # 仅所有者可读写
sudo chown root:apache /var/www/html/config.ini # 限制修改权限
/etc/httpd/conf/httpd.conf
或虚拟主机配置中,使用<Directory>
指令:<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted # 允许所有访问(生产环境建议限制IP)
</Directory>
sudo a2dismod autoindex # 禁用目录列表模块(若不需要)
sudo systemctl restart httpd
<Directory "/var/www/secure">
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/httpd/.htpasswd
Require valid-user
</Directory>
创建密码文件:sudo htpasswd -c /etc/httpd/.htpasswd username
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
sudo restorecon -Rv /var/www/html
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
/etc/httpd/conf/httpd.conf
,设置:ServerSignature Off
ServerTokens Prod
auditd
监控关键目录的访问行为,或通过ls -lZ
检查SELinux上下文是否正确。注意:修改配置后需重启Apache生效:sudo systemctl restart httpd
。生产环境中建议遵循“最小权限原则”,避免过度开放权限。
参考来源: