温馨提示×

nohup日志权限怎么设

小樊
45
2026-09-15 16:15:22
栏目: 编程语言

在使用 nohup 运行程序时,通常会生成日志文件(如 nohup.out 或自定义日志文件)。日志文件的权限取决于创建文件时的 umask 以及运行命令的用户

下面按常见场景说明如何设置和控制 nohup 日志权限。


一、nohup 日志默认权限

1. 默认情况

nohup python app.py > nohup.log 2>&1 &
  • 日志文件由当前用户创建
  • 默认权限一般为:
    -rw-r--r--  (644)
    
  • 实际权限 = 666 - umask

查看 umask:

umask

常见为 022,所以文件是 644


二、修改 nohup 日志权限的方法

方法 1:先建文件再改权限(最稳妥)

touch nohup.log
chmod 640 nohup.log
nohup python app.py >> nohup.log 2>&1 &

✅ 适用于:

  • 想固定权限
  • 不希望其他用户读取

方法 2:通过 umask 控制权限

umask 027
nohup python app.py > nohup.log 2>&1 &

结果权限:

640  (rw-r-----)

⚠️ 只对当前 shell 会话有效


方法 3:用 installsudo 指定属主/权限

sudo touch /var/log/app.log
sudo chown appuser:appuser /var/log/app.log
sudo chmod 640 /var/log/app.log

sudo -u appuser nohup python app.py >> /var/log/app.log 2>&1 &

✅ 适合生产环境


三、常见权限建议

场景 建议权限 说明
个人使用 600 仅自己可读写
同组协作 640 自己读写,组只读
多服务共享 660 同组可读写
公开日志 644 不推荐(敏感信息)

四、日志轮转(防止权限混乱)

配合 logrotate

/var/log/app.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 640 appuser appuser
}

五、注意事项

  • nohup 本身不控制权限
  • 权限由 用户 + umask + 文件是否已存在 决定
  • 使用 >> 不会改已有文件权限

如果你能说明:

  • 日志路径
  • 运行用户
  • 是否多用户访问

我可以给你一套精确权限方案

0