umask 077 是最严格且唯一可靠的新建文件权限控制方式,使文件为600(rw-------)、目录为700(rwx------),彻底阻止组和其他用户读取;临时生效需在备份脚本首行显式设置,永久生效应配置专用账户的~/.bashrc,同时必须配套限制备份目录权限与所有权。

umask 077 是最直接有效的配置
新数据库备份文件默认权限由 umask 决定,要阻止同服务器上其他用户(尤其是非授权服务账户或普通用户)横向读取,必须确保新建文件权限不包含 group 或 others 的读权限。唯一可靠的做法是设为 umask 077 —— 它会让新文件权限变成 600(rw-------),目录变成 700(rwx------)。任何低于 077 的值(比如 022、002)都会让 group/others 拥有读权限,存在泄露风险。
临时生效:在备份脚本开头显式设置 umask
很多备份工具(如 mysqldump、pg_dump)本身不控制 umask,而是继承当前 shell 环境。如果你的备份是通过 cron 或独立脚本触发,必须在脚本第一行就设置,否则可能被环境覆盖:
#!/bin/bash umask 077 mysqldump -u backup_user -p'xxx' mydb > /backup/mydb_$(date +%F).sql
注意:umask 命令必须在重定向操作之前执行;如果写成 umask 077 && mysqldump ... > file,重定向由 shell 解析,权限已按旧 umask 生效,无效。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
永久生效:优先改用户级 shell 配置,慎动系统级
对备份专用账户(如 backup 用户)做永久配置更稳妥,避免影响其他用户:
- 编辑该用户的
~/.bashrc或~/.profile,末尾追加一行:umask 077 - 执行
source ~/.bashrc立即生效,或重新登录 - 验证是否生效:
su - backup -c 'umask'应输出0077 - 不要直接改
/etc/profile或/etc/bash.bashrc,除非你确认所有用户都需此策略——这会破坏协作类服务(如 web 组内共享日志)
别忽略备份路径本身的权限和所有权
umask 只控制“新建文件”的权限,但若备份目录本身权限宽松(比如 drwxrwxr-x),攻击者仍可列出目录内容、猜测文件名、甚至尝试硬链接(在某些场景下)。所以必须配套检查:
- 备份目录应由备份用户独占,且权限为
700:chown backup:backup /backup && chmod 700 /backup - 避免把备份存到
/tmp或/var/tmp—— 这些位置默认允许 sticky bit,但其他用户仍可ls,且部分发行版 umask 不强制作用于 tmpfs - 如果用
rsync或scp推送到远程,目标端也要确认其接收目录权限和 umask 设置,否则中转过程就已暴露
真正安全的备份权限不是靠单点配置,而是 umask + 目录所有权 + 存储路径隔离 三者缺一不可;其中 umask 077 是最易遗漏却最关键的一环。










