核心是用umask 027精准屏蔽权限,使新备份目录默认为drwxr-x---(750),即所有者可读写执行、所属组仅可读执行、其他人彻底拒绝;需配置于/etc/login.defs并启用PAM模块,配合专用用户与目录归属加固。

要让新创建的备份目录从源头就具备安全权限,核心不是“设成想要的权限”,而是用 umask 精准屏蔽掉不该开放的权限位。备份目录含敏感数据,必须默认禁止组和其他用户访问——即只允许属主读、写、执行(rwx),其余全拒。
明确目标权限与对应 umask 值
备份场景下最常用且平衡安全与运维需求的是:
-
umask 027 → 目录权限为 0777 & ~027 = 0750(drwxr-x---)
- 所有者:rwx(可创建、进入、删除)
- 所属组:rx(运维同事可查看、校验、恢复,但不能误删)
- 其他人:---(彻底拒绝)
-
umask 077 → 目录权限为 0700(drwx------)
- 适用于金融级或高敏环境,仅属主可访问,组和其他人完全无权
避免使用 022 或 002:前者让其他人可读(755),后者让组可写(775),都可能造成备份泄露或误操作。
系统全局配置的可靠路径
仅改个人配置(如 ~/.bashrc)不可靠——cron、systemd、SSH 单命令等都不会加载它。应分层部署:
-
/etc/login.defs:添加或修改行 UMASK 027(注意是三位,不带前导零)
- 作用于所有 PAM 登录(SSH、控制台、su),新建用户也继承该值
-
PAM 模块启用:确认 /etc/pam.d/common-session(Debian/Ubuntu)或 /etc/pam.d/system-auth(RHEL/CentOS)中含
session optional pam_umask.so -
服务级兜底:对 cron 或 systemd 启动的备份任务,在脚本开头或 service 文件中显式设置
UMask=0027(systemd)或 umask 0027(shell 脚本)
验证是否真正生效
不能只看配置文件有没有写,也不能只运行 umask 命令看输出——必须实测创建行为:
- 以目标用户登录后执行:umask,确认输出为 0027
- 执行:mkdir backup_test && ls -ld backup_test
- 预期结果必须是 drwxr-x---(即 750)
- 若不符,说明当前进程未应用该 umask,需检查登录方式、PAM 是否启用、或服务是否绕过 shell 初始化
配套加固不可少
umask 只管“创建时”,还需协同其他措施才能闭环:
- 创建专用备份用户(如 backup),shell 设为 /usr/sbin/nologin
- 将该用户加入独立组(如 backupgrp),并确保备份目录属组为此组
- 对已存在目录批量修正:find /backup -type d -exec chmod 750 {} \;
- 审计日志开启 auditd,监控 creat、openat 等调用,记录所有备份文件生成行为


















