在 Debian(以及大多数 Linux 发行版)里,日志文件通常由 rsyslog、systemd-journald 或应用自身管理,修改权限需要区分是 syslog 日志 还是 systemd journal 日志。下面按常见场景说明。
ls -l /var/log/
常见文件如:
/var/log/syslog/var/log/messages/var/log/auth.log/var/log/kern.logsudo chmod 640 /var/log/syslog
sudo chown root:adm /var/log/syslog
常见权限:
640:root 可读写,adm 组可读adm 组:允许普通用户查看日志(如 sudo usermod -aG adm 用户名)修改 rsyslog 配置:
sudo nano /etc/rsyslog.conf
或新建文件:
sudo nano /etc/rsyslog.d/10-log-permissions.conf
添加或修改:
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
然后重启 rsyslog:
sudo systemctl restart rsyslog
✅ 之后新生成的日志文件将使用新权限。
systemd 日志 不是普通文件,不能直接 chmod。
sudo journalctl --list-boots
sudo usermod -aG systemd-journal 用户名
或全局允许:
sudo nano /etc/systemd/journald.conf
修改:
[Journal]
Storage=persistent
# 允许所有用户读取
ReadKMsg=yes
然后:
sudo systemctl restart systemd-journald
⚠️ 不建议直接修改 /var/log/journal/ 目录权限,可能导致 journald 异常。
sudo chown www-data:adm /var/log/nginx/access.log
sudo chmod 640 /var/log/nginx/access.log
永久方式:修改日志轮转配置
sudo nano /etc/logrotate.d/nginx
添加:
create 0640 www-data adm
大多数 Debian 日志由 logrotate 管理:
sudo nano /etc/logrotate.conf
或 /etc/logrotate.d/ 下对应文件:
/var/log/syslog {
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || true
endscript
create 0640 root adm
}
777adm、systemd-journal 等组权限/var/log 目录权限logrotate 管理新文件权限| 需求 | 建议方式 |
|---|---|
| 普通用户查看日志 | usermod -aG adm |
| 新日志文件权限 | rsyslog / logrotate |
| journal 日志 | systemd-journal 组 |
| 临时改权限 | chmod / chown |
如果你能说明:
我可以给你一条最合适、最安全的命令。