gshadow 为什么要收紧
/etc/gshadow 保存组口令与组管理员信息,与 /etc/shadow 属于同一类敏感文件。虽然组口令在实践中很少使用,文件本身仍应保持 root:root 且权限 0000,备份文件 /etc/gshadow- 要同步收紧——备份往往是权限回退的来源。这项加固的实际价值在于防止人为误改,以及从备份恢复后权限被悄悄放开。
基本信息
| 目标文件 | /etc/gshadow 与备份 /etc/gshadow- |
|---|---|
| 适用平台 | RHEL / CentOS 系与 Debian / Ubuntu 系 |
| 风险等级 | 中 |
| 基线值 | 权限 0000,属主 root:root |
| 相关文件 | /etc/group 保存组名与成员列表,权限 644 |
典型使用场景
- 账号文件权限基线核查,等保中的常见检查项
- 从备份恢复 /etc 目录后复核权限是否被放宽
- 排查哪些账号能读取组口令相关信息
- 账号安全整改完成后的回归验证
- 自动化巡检脚本采集账号文件权限
核查与加固
核查与加固
stat -c '%a %U:%G %n' /etc/gshadow /etc/gshadow- # 查看权限与属主
chown root:root /etc/gshadow /etc/gshadow- # 确保属主正确
chmod 0000 /etc/gshadow /etc/gshadow- # 收紧为不可读
ls -l /etc/gshadow* # 复核改动结果
getent group sudo # 查组信息应使用 getent,而不是直接读文件账号文件权限基线
| 文件 | 内容 | 权限基线 |
|---|---|---|
| /etc/passwd | 账号基本信息 | 644 root:root |
| /etc/shadow | 用户口令哈希 | 0000 或 400 root:root |
| /etc/group | 组名与成员列表 | 644 root:root |
| /etc/gshadow | 组口令与组管理员 | 0000 root:root |
| 带 - 后缀的备份文件 | 上一次修改前的副本 | 与原文件保持一致 |
多数发行版默认已经是 0000,本项的重点是防止人为误改与备份恢复时的权限回退,巡检时关注「是否被改宽」。
组口令一旦被设置且文件可读,拿到文件的人就可以离线尝试破解;管理组口令应使用 gpasswd 命令,而不是手工编辑文件内容。
检查时可以顺手复核 /etc/passwd、/etc/shadow、/etc/group 是否都符合基线:这几个账号文件彼此关联,只修一处其余仍可能被读取;巡检脚本建议把四个文件连同它们的备份文件一起采集。
如果使用配置管理工具统一下发账号文件,务必在模板里把权限固化下来,否则下一次批量推送会把权限改回工具模板里的默认值,手工修的成果直接失效。