温馨提示×

linux js日志权限怎么改

小樊
37
2026-10-11 10:04:58
栏目: 编程语言

在 Linux 下修改 JS(Node.js)日志文件的权限,通常就是改文件/目录的权限和属主,下面按常见场景说明。


一、查看当前日志权限

ls -l /path/to/logs/
ls -l /path/to/logs/app.log

示例输出:

-rw-r--r-- 1 root root 1234 Jun 10 10:00 app.log

二、修改文件权限(chmod)

1️⃣ 给所有用户读写

chmod 666 /path/to/logs/app.log

2️⃣ 仅 owner 读写,组和其他只读

chmod 644 /path/to/logs/app.log

3️⃣ 目录权限(日志目录很重要)

chmod 755 /path/to/logs

三、修改文件属主(chown)

如果 Node 是用 www 或 node 用户运行的:

chown node:node /path/to/logs/app.log
chown -R node:node /path/to/logs

四、Node.js 运行时没权限写日志

情况 1:Permission denied

Error: EACCES: permission denied, open '/var/log/app.log'

解决:

chown node:node /var/log/app.log
chmod 644 /var/log/app.log

情况 2:PM2 启动的 Node

pm2 start app.js --user node

五、新日志文件权限不对(umask 问题)

Node 默认按 umask 创建文件(常见 022 → 644)

const fs = require('fs');
fs.writeFileSync('app.log', 'log', { mode: 0o666 });

六、日志目录建议权限(生产环境)

/var/log/app/     755  node:node
/var/log/app/*.log 644 node:node

七、用 logrotate 时也要注意

/var/log/app/*.log {
    rotate 7
    daily
    compress
    missingok
    notifempty
    create 644 node node
}

如果你能告诉我:

  • 日志路径
  • Node 启动方式(直接 / pm2 / docker)
  • 报错信息

我可以给你精确命令。

0 踩