Linux服务器SCMP整改实践:Home Directory Permissions(LINUX-MULTI)检查项修复指南
目录一、背景二、问题分析三、整改前基线核查四、整改步骤五、标准化修复脚本六、整改验证七、整改经验总结一、背景在企业 Linux 服务器安全基线扫描过程中经常会遇到如下检查项检查项内容策略SCMP: GSD331 Linux Policy (BFEnterprise)检查项Home directory permissions LINUX-MULTI根据企业提供的整改指导该检查项的核心要求是统一系统默认文件权限掩码UMASK确保新创建的文件和目录采用更严格的权限控制策略从而降低敏感文件被非授权用户访问的风险。本文基于实际整改过程对修复思路、验证方法、标准化脚本及注意事项进行总结。二、问题分析现象扫描工具报告Home directory permissions LINUX-MULTI整改建议要求修改以下配置文件/etc/profile /etc/bashrc /etc/login.defs统一配置umask077以及UMASK 077UMASK 077 是什么意思Linux 中新建文件和目录时会受到 UMASK 的控制。例如默认 UMASK022新建文件权限符号644-rw-r--r--新建目录权限符号755drwxr-xr-x修改为077后新建文件权限符号600-rw-------新建目录权限符号700drwx------效果仅文件拥有者可访问其他用户无权限访问降低敏感信息泄露风险符合企业安全基线要求三、整改前基线核查建议优先选择已通过扫描的标准服务器作为参考。检查以下内容grep-numask/etc/profilegrep-numask/etc/bashrcgrep^UMASK/etc/login.defsumask例如标准服务器结果79:umask 077 90:umask 077 UMASK 077 0077说明文件状态/profile已配置/bashrc已配置/login.defs已配置运行时已生效后续服务器直接向标准机看齐即可。四、整改步骤第一步备份配置文件执行cp-p/etc/profile /etc/profile.bak.$(date%F-%H%M%S)cp-p/etc/bashrc /etc/bashrc.bak.$(date%F-%H%M%S)cp-p/etc/login.defs /etc/login.defs.bak.$(date%F-%H%M%S)确认备份ls-l/etc/profile.bak.*ls-l/etc/bashrc.bak.*ls-l/etc/login.defs.bak.*第二步修改 /etc/profile检查grep-numask/etc/profile如不存在echoumask 077/etc/profile第三步修改 /etc/bashrc检查grep-numask/etc/bashrc如不存在echoumask 077/etc/bashrc第四步修改 /etc/login.defs检查grep^UMASK/etc/login.defs统一修改sed-ris/^UMASK.*/UMASK 077//etc/login.defs如不存在echoUMASK 077/etc/login.defs五、标准化修复脚本建议保存为/scmp/fix_home_directory_permissions.sh内容如下#!/bin/bashechoechoHome directory permissions 修复开始echoBACKUP_SUFFIX$(date%F-%H%M%S)cp-p/etc/profile /etc/profile.bak.${BACKUP_SUFFIX}cp-p/etc/bashrc /etc/bashrc.bak.${BACKUP_SUFFIX}cp-p/etc/login.defs /etc/login.defs.bak.${BACKUP_SUFFIX}echo[INFO] 配置文件已备份ifgrep-q^umask 077/etc/profile;thenecho[OK] /etc/profile 已存在 umask 077elseechoumask 077/etc/profileecho[FIX] /etc/profile 已追加 umask 077fiifgrep-q^umask 077/etc/bashrc;thenecho[OK] /etc/bashrc 已存在 umask 077elseechoumask 077/etc/bashrcecho[FIX] /etc/bashrc 已追加 umask 077fiifgrep-q^UMASK/etc/login.defs;thensed-ris/^UMASK.*/UMASK 077//etc/login.defsecho[FIX] /etc/login.defs 已更新为 UMASK 077elseechoUMASK 077/etc/login.defsecho[FIX] /etc/login.defs 已新增 UMASK 077fiechoecho 验证结果 grep-numask/etc/profilegrep-numask/etc/bashrcgrep^UMASK/etc/login.defsechoecho[NOTICE] 请重新登录SSH后执行:echoumaskecho期望结果为0077echoecho修复完成授权执行chmodx /scmp/fix_home_directory_permissions.sh执行bash/scmp/fix_home_directory_permissions.sh六、整改验证配置文件验证执行grep-numask/etc/profilegrep-numask/etc/bashrcgrep^UMASK/etc/login.defs期望结果79:umask 077 90:umask 077 UMASK 077运行时验证退出当前 SSHexit重新登录。执行umask期望返回0077此步骤非常重要。仅修改配置文件并不代表实际生效必须验证运行时 UMASK 已经变更为0077才能确认整改成功。七、整改经验总结本次整改过程中发现仅修改/etc/profile /etc/login.defs并不能完全与企业整改标准保持一致。标准配置要求/etc/profile /etc/bashrc /etc/login.defs三处同时配置077原因是配置文件作用范围/etc/profile控制登录 Shell/etc/bashrc控制交互 Shell/etc/login.defs控制系统默认 UMASK 策略三者缺一不可。最终整改验收标准建议统一为grep-numask/etc/profilegrep-numask/etc/bashrcgrep^UMASK/etc/login.defsumask验证结果应全部满足umask 077 umask 077 UMASK 077 0077完成以上验证后即可提交 SCMP 重新扫描。该方案风险较低、可回滚、便于批量推广适合作为企业 Linux 服务器 UMASK 基线整改标准方案。