在使用 nohup 运行程序时,通常会生成日志文件(如 nohup.out 或自定义日志文件)。日志文件的权限取决于创建文件时的 umask 以及运行命令的用户。
下面按常见场景说明如何设置和控制 nohup 日志权限。
nohup python app.py > nohup.log 2>&1 &
-rw-r--r-- (644)
666 - umask查看 umask:
umask
常见为 022,所以文件是 644
touch nohup.log
chmod 640 nohup.log
nohup python app.py >> nohup.log 2>&1 &
✅ 适用于:
umask 027
nohup python app.py > nohup.log 2>&1 &
结果权限:
640 (rw-r-----)
⚠️ 只对当前 shell 会话有效
install 或 sudo 指定属主/权限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 本身不控制权限>> 不会改已有文件权限如果你能说明:
我可以给你一套精确权限方案。