无法访问日志文件错误:
Permission denied when trying to access /var/log/nginx/error.log
无法写入日志错误:
Could not open error log file: open() failed (13: Permission denied)
日志轮转失败:
error: error creating output file /var/log/syslog.1: Permission denied
# 检查当前权限
ls -la /var/log/nginx/
# 设置正确权限 (以Nginx为例)
sudo chown -R nginx:nginx /var/log/nginx/
sudo chmod -R 755 /var/log/nginx/
# 查看SELinux状态
getenforce
# 如果是Enforcing模式,可以临时设置为Permissive
sudo setenforce 0
# 永久修改SELinux策略
sudo semanage fcontext -a -t httpd_log_t "/var/log/nginx(/.*)?"
sudo restorecon -Rv /var/log/nginx
# 检查日志轮转配置
sudo ls -la /etc/logrotate.d/
# 确保日志轮转后保持正确的权限
# 在logrotate配置中添加postrotate脚本,例如:
postrotate
chown nginx:nginx /var/log/nginx/*.log
chmod 644 /var/log/nginx/*.log
endscript
# 检查磁盘使用情况
df -h
# 检查inode使用情况
df -i
# 清理旧日志
sudo find /var/log -type f -name "*.log" -mtime +30 -delete
sudo mkdir -p /var/log/nginx
sudo chown -R nginx:nginx /var/log/nginx
sudo chmod -R 755 /var/log/nginx
sudo systemctl restart nginx
sudo mkdir -p /var/log/httpd
sudo chown -R apache:apache /var/log/httpd
sudo chmod -R 755 /var/log/httpd
sudo systemctl restart httpd
# 检查journald日志权限
sudo ls -la /var/log/journal/
# 修复权限
sudo chown -R root:systemd-journal /var/log/journal
sudo chmod -R 2755 /var/log/journal
sudo systemctl restart systemd-journald
通过以上方法,可以解决大多数Linux服务器上的日志权限问题,并确保服务能够正常记录日志。