Ubuntu Apache 权限设置指南

一 基础安全原则
二 文件与目录权限设置
# 设置属主与属组sudo chown -R www-data:www-data /var/www/html# 目录 755,文件 644sudo find /var/www/html -type d -exec chmod 755 {} ;sudo find /var/www/html -type f -exec chmod 644 {} ;sudo chown -R www-data:www-data /var/www/html/uploadssudo chmod 775 /var/www/html/uploads三 Apache 运行身份与虚拟主机配置
ps aux | grep apache2sudo nano /etc/apache2/envvars# 修改:export APACHE_RUN_USER="www-data"export APACHE_RUN_GROUP="www-data"<VirtualHost *:80>ServerAdmin [email protected] yourdomain.comDocumentRoot /var/www/yourdomain.com<Directory /var/www/yourdomain.com>Options Indexes FollowSymLinksAllowOverride AllRequire all granted</Directory>ErrorLog ${APACHE_LOG_DIR}/error.logCustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>sudo a2ensite yourdomain.com.confsudo systemctl reload apache2<Location "/admin">Require ip 192.168.1.0/24 203.0.113.10</Location>sudo a2enmod auth_basic authn_filesudo htpasswd -c /etc/apache2/.htpasswd admin<Location "/admin">AuthType BasicAuthName "Restricted Area"AuthUserFile /etc/apache2/.htpasswdRequire valid-user</Location>四 安全加固与运维要点
sudo aa-status# 按需编辑 /etc/apparmor.d/usr.sbin.apache2 并 reloadsudo systemctl reload apparmorsestatussudo chcon -Rv --type=httpd_sys_content_t /var/www/html# 或策略调整(示例)sudo setenforce 0 # 临时sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config# 永久示例sudo ufw allow 'Apache Full'sudo tail -f /var/log/apache2/error.logsudo tail -f /var/log/apache2/access.log五 常见问题与排查