可登录账号清单
可登录账号清单是账号收敛的基础动作:/etc/passwd 的最后一列是登录 shell,只要不是 nologin 或 false,这个账号就具备交互登录能力。清单越短越可控,每一个可登录账号都应该能说清归属、用途与负责人。核查时重点关注服务账号是否被设了 shell,以及有没有来源不明的账号。
基本信息
| 适用平台 | Linux |
|---|---|
| 风险等级 | 中 |
| 判读标准 | 可登录账号需逐个有归属说明 |
| 核查文件 | /etc/passwd 与 /etc/shadow |
| 相关命令 | awk、getent、passwd -S |
典型使用场景
- 账号收敛巡检,确认可登录账号清单
- 排查服务账号是否被误设为可登录 shell
- 离职员工账号的锁停核查
- 应急响应时检查是否出现新增的可登录账号
- 新系统交付前的账号面评审
- 把账号清单与人员台账逐一核对
核查命令
核查命令
awk -F: '$7 !~ /(nologin|false)$/ {print $1" uid="$3" shell="$7}' /etc/passwd # 列出所有非 nologin 的账号
awk -F: '$3>=1000 && $3<65534 {print $1" "$7}' /etc/passwd # 只看普通用户段
getent passwd | awk -F: '$7 !~ /(nologin|false)$/ {print $1}' | sort # 走 NSS 查询,包含域账号
ls -l /etc/passwd /etc/shadow # 确认账号文件权限正常
passwd -S <账号> # 查看某个账号的口令状态是否已锁定检查项与判读
| 检查项 | 含义 | 判读 |
|---|---|---|
| 登录 shell 列 | 账号能否交互登录 | nologin 与 false 表示不可登录 |
| UID 范围 | 账号类型 | 1000 以下多为系统账号 |
| 口令状态 | 账号是否已被锁定 | 已锁定账号即使有 shell 也无法登录 |
| 负责人归属 | 账号对应的使用人 | 找不到归属人的账号应先锁停 |
| 家目录 | 是否存在可用家目录 | 服务账号通常不该有可用家目录 |
整改口径:服务账号统一设置为 nologin;普通账号按人员清单逐一核对,离职账号及时锁停。
root 出现在清单里属于正常现象,重点是挑出意外出现的服务账号与来源不明的账号。
shell 字段为空也等于不可登录:判读时要把这一条与其他规则叠加,否则会把它误判成可登录账号,整改时就改错了对象。