一聚教程网:一个值得你收藏的教程网站

热门教程

umask中umask如何在安全加固中将系统默认022调优为027以提升整机防御

时间:2026-08-29 11:30:49 编辑:袖梨 来源:一聚教程网

系统默认umask从022调优为027是安全加固最直接有效的基线优化,需双轨配置:在/etc/login.defs设UMASK 027控制新用户,并通过PAM在common-session或system-auth中添加session optional pam_umask.so umask=0027覆盖所有登录场景,再验证新建文件为640、目录为750,同步修复已有文件权限。

把系统默认 umask 从 022 调优为 027,是安全加固中最直接、见效最快的权限基线优化之一。它不依赖事后审计或复杂工具,而是从文件诞生那一刻就阻止组外用户读取敏感内容(如配置、日志、密钥),尤其能防范因疏忽导致的横向越权访问。

为什么022不够安全?

默认 umask 022 对应文件权限 644(-rw-r--r--)、目录 755(drwxr-xr-x)——其他用户可读。在多用户服务器、容器宿主机或审计环境中,这等于把应用配置、调试日志甚至临时凭证“公开晾晒”。而 027 将其他用户的全部权限屏蔽,只保留属主和组内必要访问,符合最小权限原则。

必须双轨配置:/etc/login.defs + PAM

单改一处极易失效,需同时覆盖新用户创建与所有登录路径:

  1. /etc/login.defs 中设置 UMASK 027:确保 useradd 创建的新账号默认继承该值。注意该行不能被注释,且仅对新用户生效
  2. PAM 全局接管:编辑 /etc/pam.d/common-session(Debian/Ubuntu)或 /etc/pam.d/system-auth(RHEL/CentOS),末尾添加:

    session optional pam_umask.so umask=0027

    此方式对 SSH 登录、su -、sudo -i、systemd 用户服务、cron 子 shell 等全部生效,优先级高于 shell 配置

验证是否真实生效

不能只运行 umask 命令看输出,要验证实际创建行为:

  1. 新开一个干净终端(避免缓存),执行:

    umask && touch testf && mkdir testd && ls -ld testf testd

  2. 预期结果应为:

    -rw-r----- 1 user group testf(文件 640)

    drwxr-x--- 2 user group testd(目录 750)

  3. 若仍出现 644 或 755,说明某处配置被覆盖或未加载(如 shell 启动时 source 了错误配置、PAM 模块未安装等)

配套加固已有文件权限

umask 只控制“新建”文件,必须同步清理历史风险:

  1. 收紧家目录:执行 chmod 700 /home/*,防止其他用户进入任意用户家目录
  2. 重置敏感文件:chmod 600 ~/.bash_history ~/.ssh/authorized_keyschmod 700 ~/.ssh
  3. 检查系统关键文件:/etc/shadow/etc/gshadow 必须为 600;/etc/passwd/etc/group 可保持 644

热门栏目