以下是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
。生產環境中建議遵循“最小權限原則”,避免過度開放權限。
參考來源: