家目录权限默认太宽
多数发行版把家目录建成 755:同组与其他用户虽然不能写,却能列出目录、读到 .bash_history、.ssh、配置里的明文口令。CIS 要求家目录 750 或更严,并且 /home 本身不应允许普通用户随意增删目录。配套的 SSH 明文要求是 .ssh 目录 700、authorized_keys 600,配错会直接让密钥登录被拒。
基本信息
| 加固项 | 家目录最小化可访问范围 |
|---|---|
| 适用平台 | Linux(RHEL/CentOS、Debian/Ubuntu) |
| 权限要求 | root 或家目录属主 |
| 基线值 | /home/* 为 750 或更严;/home 为 755 且属主 root |
| 基线对应 | CIS:permissions on user home directories are 750 or more restrictive |
典型使用场景
- 新装系统批量创建用户后统一收紧家目录权限
- 等保测评的“访问控制”条款取证,需要逐目录权限快照
- 多用户共用一台跳板机时限制横向窥探
- SSH 密钥登录失败排查,先确认 .ssh 与 authorized_keys 权限
- 离职账号回收时同步确认其家目录是否被他人可读
核查权限现状
核查权限现状
stat -c '%a %U:%G %n' /home/* # 逐个家目录的权限与属主
stat -c '%a %U:%G %n' /home # 父目录本身:期望 755 且属主 root
ls -ld /home/alice/.ssh /home/alice/.ssh/authorized_keys # SSH 目录期望 700 与 600加固与复核
加固与复核
chmod 750 /home/alice # 单用户收紧
find /home -mindepth 1 -maxdepth 1 -type d -exec chmod 750 {} \; # 批量,先确认无共享依赖
chmod 700 /home/alice/.ssh && chmod 600 /home/alice/.ssh/authorized_keys
stat -c '%a %n' /home/* # 复核,全部应为 750 或更小常见权限取值
| 取值 | 同组用户 | 其他用户 | 适用判断 |
|---|---|---|---|
| 700 | 不可进入 | 不可进入 | 最严,单用户独占时首选 |
| 750 | 可进入可读列表 | 不可进入 | CIS 基线值,组内协作场景可用 |
| 755 | 可读列表 | 可读列表 | 默认值,不达标 |
| 775 | 可写 | 可读列表 | 不达标,存在被篡改风险 |
收紧前先确认是否存在跨用户共享目录、或备份同步工具用其他账号读写家目录的情况。750 意味着同组可读可进入,若账号之间同属一个大组,收敛效果会打折,应结合组设计一起调整。
新用户默认家目录权限由 /etc/login.defs 的 UMASK(或 CREATE_HOME 相关配置)决定,只修历史用户而不改默认值,下一批新账号还会回到 755。历史数据与默认策略要一次改到位。