CentOS 上保障 nohup 日志安全性的实用方案
一 基础安全配置
nohup your_command > /var/log/myapp/output.log 2>&1 &,随后 chmod 600 /var/log/myapp/output.log、chown appuser:appgroup /var/log/myapp/output.log、chmod 700 /var/log/myapp。避免使用 /tmp 等公开可写目录。二 存储加密与访问控制
gpg --symmetric --cipher-algo AES256 nohup.out。sudo chcon -R -t var_log_t /var/log/myapp。三 生命周期管理与可用空间
/etc/logrotate.d/myapp/var/log/myapp/*.log { size 100M rotate 7 compress missingok notifempty create 600 appuser appgroup}四 推荐实践清单
| 控制点 | 建议配置 | 关键命令或示例 |
|---|---|---|
| 日志路径 | 使用受保护目录(如 /var/log/myapp) | mkdir -p /var/log/myapp && chown appuser:appgroup /var/log/myapp && chmod 700 /var/log/myapp |
| 文件权限 | 日志文件 600,目录 700 | touch /var/log/myapp/output.log && chmod 600 $_ && chown appuser:appgroup $_ |
| 输出重定向 | 统一重定向并后台运行 | nohup your_command > /var/log/myapp/output.log 2>&1 & |
| 轮转压缩 | 按大小滚动、保留 7 份并压缩 | 见上文 logrotate 配置 |
| 加密归档 | 对归档日志进行 GPG 加密 | gpg --symmetric --cipher-algo AES256 nohup.out-20251203.gz |
| 访问控制 | 启用 SELinux 并设置类型 | chcon -R -t var_log_t /var/log/myapp |
| 审计监控 | 审计关键文件、集中收集与告警 | 配置 auditd;部署 ELK/Splunk 与告警规则 |
| 运行身份 | 以 非 root 专用用户运行 | runuser -u appuser -- your_command |
| 敏感信息 | 避免记录密码/密钥,必要时脱敏 | 应用层脱敏与最小化日志内容 |
| 进程管理 | 关键任务优先使用 systemd/supervisord | systemctl enable --now your_service |
以上措施协同实施,可在 机密性、完整性、可用性 三个维度显著提升 nohup 日志的安全水平,并兼顾合规与运维可观测性。