金融级环境要求备份文件权限为600、目录为700,须设umask为0077:文件权限=0666 & ~0077=0600,目录权限=0777 & ~0077=0700;需通过/etc/login.defs设UMASK 077、PAM配置pam_umask.so及专用用户隔离等多层加固。

在金融级环境中,新创建的备份数据必须严格限制访问范围,禁止非授权用户读取、写入或执行。Linux 的 umask 是控制新建文件和目录默认权限的第一道防线,但仅靠 umask 不足以满足金融合规(如等保三级、PCI DSS、GB/T 22239)要求——它需与用户隔离、组策略、审计机制协同使用。
明确金融级权限目标
典型金融场景要求:
- 备份文件(如
.tar.gz、.sql)默认权限为600(-rw-------),仅属主可读写 - 备份目录默认权限为
700(drwx------),仅属主可进入和操作 - 禁止组和其他用户获得任何权限(包括读、写、执行)
- 权限设置须持久、可审计、不可被普通用户绕过
配置符合要求的umask值
要达成 600 和 700,需设 umask 为 0077:
- 文件默认基础权限是
0666,计算:0666 & ~0077 = 0600 - 目录默认基础权限是
0777,计算:0777 & ~0077 = 0700 - 注意:内核强制过滤文件的执行位,所以即使 umask=0000,文件也不会带
x,无需额外处理
永久生效且防篡改的部署方式
避免仅在个人 shell 配置中设置,应分层加固:
-
服务级固化:若备份由专用用户(如
backup)或服务(如rsyncd、mysqldump定时任务)执行,在其启动脚本开头显式设置:umask 0077 -
用户级锁定:在
/etc/skel/.profile和/etc/skel/.bashrc中添加umask 0077,确保新建用户继承该策略 -
系统级兜底:编辑
/etc/login.defs,设置:UMASK 077(注意此处不带前导零,格式为三位)
并确认USERGROUPS_ENAB yes与/etc/pam.d/common-session包含:session optional pam_umask.so -
验证是否生效:以目标用户登录后运行
umask,输出应为0077;再执行touch testfile && mkdir testdir && ls -ld testfile testdir,确认权限分别为-rw-------和drwx------
补充必要安全措施
umask 单独不能满足金融级要求,必须配套:
-
专用备份用户:创建无登录 Shell(
/usr/sbin/nologin)、无密码、仅用于备份任务的系统用户 -
最小权限组:将备份用户加入独立组(如
backupgrp),禁用该组对其他路径的访问 -
审计日志开启:启用
auditd监控creat、openat等系统调用,记录所有备份文件创建行为 -
定期权限巡检:通过 cron 调用脚本检查
/backup/下所有文件是否符合600/700,异常项自动告警


















