Ubuntu Apache权限设置主要包括文件/目录权限、用户/组配置及访问控制,具体步骤如下:
文件和目录权限
www-data)对网站目录有正确权限:sudo chown -R www-data:www-data /var/www/html # 设置所有者和组
sudo chmod -R 755 /var/www/html # 目录权限(所有者可读写执行,其他用户仅可读执行)
sudo find /var/www/html -type f -exec chmod 644 {} \; # 文件权限(所有者可读写,其他用户仅可读)
sudo chmod -R 775 /var/www/html/uploads
用户和组配置
www-data),修改配置文件/etc/apache2/envvars:sudo nano /etc/apache2/envvars
# 确保以下两行正确
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
重启Apache生效:sudo systemctl restart apache2。Apache访问控制
/etc/apache2/sites-available/000-default.conf)中使用<Directory>指令:<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted # 允许所有访问(生产环境建议限制IP或用户)
</Directory>
<Location "/admin">
Require ip 192.168.1.100
</Location>
sudo a2enmod auth_basic
sudo htpasswd -c /etc/apache2/.htpasswd username
在配置文件中添加:<Location "/secure">
AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/.htpasswd
Require user username
</Location>
特殊场景
sudo chown www-data:adm /var/log/apache2
sudo chmod 640 /var/log/apache2/*.log
sudo chcon -R -t httpd_sys_content_t /var/www/html
重启服务
完成配置后重启Apache:sudo systemctl restart apache2。
注意:生产环境中建议最小化权限,避免使用Require all granted,优先通过IP或用户认证限制访问。