首页/系统/信创系统运维速查/umask 权限掩码策略配置
安全加固65 条

umask 权限掩码策略配置

umask 决定新建文件/目录的默认权限:022 给同组只读、027 屏蔽同组写与他组全部;加固基线常要求 027,配置位置与生效范围要分清。

信创系统运维速查系统更新于 2026-10-13

umask 是什么

umask(权限掩码)决定新建文件与目录的默认权限,规则是「最大权限减去掩码」。文件基准 666、目录基准 777,掩码 022 得到 644/755,掩码 027 得到 640/750。它只影响新建对象,对已有文件无效。安全基线与等保访问控制条款常要求设为 027,落地时要同时改 shell 启动脚本与登录类程序配置,两处口径一致才真正生效。

基本信息

适用平台全部 Linux 发行版(openEuler、麒麟、UOS、RHEL)
查看当前值umask,输出形如 0022
临时修改umask 027,仅对当前 shell 及子进程有效
全局配置/etc/profile.d/umask.sh 与 /etc/login.defs 的 UMASK
生效范围只影响新建文件与目录,不改动已有对象

典型使用场景

  • 安全基线整改:把默认掩码从 022 收紧到 027,禁止其他用户读取新建文件
  • 共享目录控制:同组协作用 027,同组可读写、其他人完全不可见
  • 敏感账户加固:root 与数据库账户用 077,新建文件仅属主可见
  • 应用部署核对:排查应用生成的日志与配置文件权限过宽问题
  • 交付验收:批量确认各机器掩码一致,避免各不相同导致审计口径不统一

查看、验证与全局配置

查看、验证与全局配置
umask                                     # 查看当前值(如 0022)
umask 027                                 # 仅在当前 shell 生效
touch /tmp/umask_test && ls -l /tmp/umask_test   # 验证:应为 640
mkdir /tmp/umask_dir && ls -ld /tmp/umask_dir    # 目录应为 750

# 全局配置(两处都要对齐)
echo 'umask 027' > /etc/profile.d/umask.sh
sed -i 's/^UMASK.*/UMASK 027/' /etc/login.defs
grep -r umask /etc/profile /etc/bashrc /etc/login.defs   # 确认没有后来的覆盖

常见取值与产物权限

umask新建文件新建目录典型场景
022644755传统默认,同组可写其他人可读
027640750加固基线常用,其他人不可读
077600700敏感账户,仅属主可见
002664775同组协作共享目录,需谨慎评估
服务与守护进程不读 /etc/profile:systemd 单元可用 UMask= 指定,sshd 可用 /etc/ssh/sshd_config 的 UMask 控制登录会话,只改 shell 配置会漏掉这些进程。
收紧掩码前先确认业务是否需要同组或其他用户读取新建文件;上传目录、共享目录改严后可能直接导致业务报权限拒绝。

易错点

  • /etc/profile 与 profile.d 只对登录 shell 生效,图形会话、cron 任务与非登录进程不会读取,验证必须在目标场景做。
  • 只改 profile.d 不改 login.defs,使用 su、login 的程序仍走旧值,表现为「有的用户生效有的不生效」。
  • 把 umask 写进 /etc/profile 后仍被后续脚本里的 umask 覆盖,排查要按加载顺序看最后生效的那一处。
  • 误以为 umask 能改已有文件权限,实际只作用于新建对象,存量文件需要另行批量调整。
  • 共享协作目录直接收紧到 077,同组同事立刻无法读写,属于典型的加固副作用。

数据来源与参考

  • man 1 umask
  • man 5 login.defs
  • 等保 2.0 访问控制要求
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌