在 Ubuntu 上设置 Apache 日志文件的权限,通常要兼顾 安全性 和 Apache 能正常写入。下面按常见场景说明。
Ubuntu 上 Apache(通常是 apache2)日志一般在:
/var/log/apache2/
常见文件:
access.logerror.logexample.com-access.log)sudo chown -R root:adm /var/log/apache2
sudo chmod 755 /var/log/apache2
说明:
root:adm 是 Ubuntu 默认日志管理组adm 组可查看日志(运维常用)sudo chmod 640 /var/log/apache2/*.log
结果示例:
-rw-r----- 1 root adm 12345 access.log
✅ Apache 以 www-data 用户运行,通过 adm 组读取/写入日志
Apache 运行用户:
ps aux | grep apache2
通常是:
www-data
如果日志无法写入,把 www-data 加入 adm 组:
sudo usermod -aG adm www-data
然后重启 Apache:
sudo systemctl restart apache2
如果你把日志放到其他目录:
sudo mkdir -p /srv/logs/apache
sudo chown root:adm /srv/logs/apache
sudo chmod 755 /srv/logs/apache
sudo chmod 640 /srv/logs/apache/*.log
并在 Apache 配置中指定:
CustomLog /srv/logs/apache/access.log combined
ErrorLog /srv/logs/apache/error.log
Ubuntu 默认有:
/etc/logrotate.d/apache2
不要手动改日志权限后影响轮转,建议保持:
root:adm640❌ Permission denied: AH00558
→ 日志目录或文件权限不对
✅ 解决:
sudo chown root:adm /var/log/apache2
sudo chmod 755 /var/log/apache2
如果你愿意,可以告诉我:
我可以给你更精确的权限方案。