在Debian系统中设置Node.js日志权限,需从目录权限、用户组配置、安全策略及工具管理等方面操作,具体步骤如下:
sudo mkdir -p /var/log/nodejs-app # 创建日志目录
sudo chown -R node:node /var/log/nodejs-app # 将目录所有者设为Node.js运行用户(通常为node)
sudo chmod -R 755 /var/log/nodejs-app # 设置目录权限为755(所有者可读写执行,组和其他用户可读执行)
const winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.File({ filename: '/var/log/nodejs-app/app.log' })
]
});
httpd_sys_rw_content_t,并应用规则:sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/log/nodejs-app(/.*)?"
sudo restorecon -Rv /var/log/nodejs-app
/etc/apparmor.d/usr.sbin.node中添加规则:/var/log/nodejs-app/ r,
/var/log/nodejs-app/** rwk,
然后重启AppArmor:sudo systemctl reload apparmor
logrotate工具避免日志过大,创建配置文件/etc/logrotate.d/nodejs-app:/var/log/nodejs-app/*.log {
daily
rotate 7
compress
missingok
create 640 node adm
}
注意:确保Node.js应用以正确用户(如node)运行,可通过ps aux | grep node确认。定期检查权限和日志文件,避免敏感信息泄露。