Ubuntu上Node.js日志权限设置指南
一 基本原则
二 标准操作步骤
sudo mkdir -p /var/log/myappsudo chown nodeuser:nodeuser /var/log/myappsudo chmod 755 /var/log/myapp(目录需执行权限,便于创建文件)mkdir -p logssudo chown nodeuser:nodeuser logschmod 755 logs/var/log/myapp/app.log 或 path.join(__dirname, 'logs', 'app.log')),确保进程对目标目录具备写入权限。sudo chown nodeuser:adm /var/log/myapp/app.logsudo chmod 640 /var/log/myapp/app.log(所有者读写,组只读,其他无权限)sudo nano /etc/logrotate.d/myapp/var/log/myapp/*.log {
dailymissingokrotate 7compressdelaycompressnotifemptycreate 640 nodeuser adm}create 指定的属主/属组/权限自动创建,避免权限漂移。三 常见场景与命令示例
chmod 700 logs;文件:chmod 600 logs/app.log;属主:nodeuser:nodeuserchmod 755 /var/log/myapp;文件:chmod 640 /var/log/myapp/app.log;属主:nodeuser:admsetfacl -m u:alice:r /var/log/myapp/app.loggetfacl /var/log/myapp/app.logchmod 777(过宽权限,存在信息泄露与篡改风险)。四 故障排查与最佳实践
ps aux | grep node 或 systemctl show <service> -p Usernamei -l /var/log/myapp 或 test -w /var/log/myapp && echo oktail -f /var/log/syslog | grep logrotate;手动测试:sudo logrotate -d /etc/logrotate.d/myapp(干跑)