在 Debian 上用 Go 写程序时,“日志权限”一般涉及 日志文件本身的权限 和 程序运行用户 两个方面。下面按常见场景说明怎么改。
假设日志文件是 /var/log/myapp/app.log
sudo chmod 644 /var/log/myapp/app.log
sudo chown appuser:appuser /var/log/myapp/app.log
常用权限说明:
644:属主可读写,其他只读600:仅属主可读写(更安全)664:属主和组可读写如果你在 Go 里自己创建日志文件:
f, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
注意:
022如果想强制权限,可在程序启动时设置 umask:
syscall.Umask(0)
⚠️ 不推荐全局改 umask,最好只改日志目录权限。
如果你用 systemd 跑 Go 程序:
[Service]
User=appuser
Group=appuser
然后确保日志目录归属正确:
sudo mkdir -p /var/log/myapp
sudo chown -R appuser:appuser /var/log/myapp
sudo chmod 750 /var/log/myapp
/etc/logrotate.d/myapp 示例:
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0644 appuser appuser
postrotate
systemctl reload myapp
endscript
}
关键点:
create 指定新日志文件权限和属主750640 或 644如果你能贴一下:
我可以给你更精确的改法。