金融级等保要求临时报表文件权限必须为600,须设umask 0077:文件权限=0666 & ~0077=0600,目录=0777 & ~0077=0700;需通过脚本开头、systemd umask、cron及专用用户隔离等多层固化,并配套auditd审计与每日巡检。

明确等保对临时报表文件的权限要求
等保三级明确要求“敏感数据文件应限制访问范围”,临时报表通常含客户交易、账户余额等受控信息,属于“重要数据”范畴:
• 文件权限必须为600:仅属主可读写,禁止组(group)和其他(others)读、写、执行
• 不得出现644、640、664等开放权限,哪怕短暂存在也构成合规风险
• 权限设置须在进程启动时生效,且覆盖 cron、systemd、脚本调用等非交互场景
• 需可验证、可留痕,审计日志应记录文件创建行为及权限状态
配置符合要求的 umask 值
目标权限600由文件基准权限0666推导而来:
0666 & ~0077 = 0600 → 必须使用 umask 0077
该值能同时保证:
• 临时报表文件(如 report_20260720.csv)默认为 -rw-------
• 报表输出目录(如 /tmp/reports/)默认为 drwx------(700),防止遍历
• 内核自动过滤执行位,无需额外处理,安全可靠
确保 umask 在报表生成全链路中生效
仅改个人配置无效。报表常由定时任务或后台服务生成,必须覆盖所有执行路径:
• 报表脚本开头强制设置:在 Python/Shell 脚本第一行添加 umask 0077
• systemd 服务中固化:若用 systemd 启动报表服务,在 [Service] 段加 UMask=0077
• cron 环境中显式声明:在 crontab 文件顶部加 UMASK=0077(部分系统支持),更稳妥做法是在脚本内设
• 专用报表用户隔离:创建无登录 shell(/usr/sbin/nologin)的用户(如 reporter),仅用于运行报表任务
配套加固措施(等保必需项)
umask 单独不满足等保,必须组合实施:
• 输出目录权限同步设为 700:执行 chmod 700 /tmp/reports,并禁止其他用户写入父路径
• 启用 auditd 审计:监控 creat、openat 等系统调用,记录所有报表文件创建事件
• 每日巡检脚本:用 find /tmp/reports -type f ! -perm 600 -ls 扫描异常权限,发现即告警并自动修复
• 禁用全局宽松 umask:检查 /etc/login.defs 中 UMASK 是否为 077,避免新用户继承不安全值











