温馨提示×

linux js日志权限怎么设置

小樊
49
2026-09-29 17:03:55
栏目: 编程语言

在 Linux 下,JS 日志(无论是 Node.js 应用日志,还是前端构建/服务端日志文件)本质上就是普通文件,权限设置主要遵循 Linux 文件权限规则。下面按「常见场景 + 实操命令」说明。


一、基本概念(先搞清楚)

Linux 文件权限:

r = 读(4)
w = 写(2)
x = 执行(1)

示例:

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

表示:

  • 属主(app):读写
  • 属组(app):读
  • 其他用户:读

二、常见 JS 日志场景及推荐权限

1️⃣ Node.js 应用日志(最常见)

假设日志目录:

/var/log/myapp/

推荐做法:

# 创建日志目录
sudo mkdir -p /var/log/myapp

# 设为运行 Node 的用户(如 app)
sudo chown -R app:app /var/log/myapp

# 目录权限
sudo chmod 755 /var/log/myapp

# 日志文件权限
sudo chmod 644 /var/log/myapp/*.log

✅ 说明:

  • Node 进程用户能写
  • 其他用户只能看,不能改

2️⃣ 使用 PM2 的日志

PM2 默认日志在:

~/.pm2/logs/

如果你用 pm2 启动:

pm2 start app.js

日志权限通常是启动用户所有,一般不需要手动改。

如要统一:

chmod 644 ~/.pm2/logs/*.log

3️⃣ Docker 中的 JS 日志

Docker 容器内:

  • 日志一般写到 /app/logs
  • 宿主机通过 volume 挂载
docker run -v /data/logs:/app/logs node:18

宿主机设置:

chown -R 1000:1000 /data/logs
chmod 755 /data/logs

(1000 通常是 node 用户 UID)


4️⃣ systemd 服务运行的 Node 日志

如果你用 systemd:

[Service]
User=app
ExecStart=/usr/bin/node /opt/app/index.js

日志可写到:

/var/log/app/
sudo chown -R app:app /var/log/app
sudo chmod 750 /var/log/app

三、日志轮转(很重要)

避免日志无限变大:

使用 logrotate

sudo vim /etc/logrotate.d/myapp

示例:

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

四、安全建议(必看)

✅ 不要给 777 ❌ 错误示例:

chmod 777 app.log

✅ 推荐:

  • 日志目录:750 或 755
  • 日志文件:640 或 644
  • 属主 = 运行 JS 的用户

五、快速排查权限问题

# 看是谁在跑 Node
ps aux | grep node

# 看日志权限
ls -l /var/log/myapp

# 测试是否能写
sudo -u app touch /var/log/myapp/test.log

如果你能告诉我:

  • 用的是 Node / PM2 / Docker / Nginx
  • 日志写在 哪个目录
  • 是否 多用户访问

我可以直接给你一套精准权限方案。

0 踩