账号锁定与禁用
禁用账号分三层:锁定密码条目、禁止交互式登录、设定账号到期。三层各自拦住不同的入口,只做一层往往留了后门——锁了密码,密钥登录照样能进;换了登录解释器,已建立的会话与计划任务不受影响。离职与临时停用场景要把三层配齐。
基本信息
| 适用平台 | Linux、Unix 通用(shadow-utils 与核心工具) |
|---|---|
| 常用手段 | 锁定密码条目、把登录解释器改成禁止登录、设定账号到期日 |
| 判断依据 | 是否允许密钥登录、是否有残留的计划任务与会话 |
| 恢复方式 | 逐项反向操作,改完立即验证 |
三层与附加项
- 锁密码:阻止密码认证,但不影响密钥登录
- 禁交互:把登录解释器替换为禁止登录的版本,阻止交互式 shell
- 设到期:让账号整体失效,不区分登录方式
- 附加清理:计划任务、授权文件、服务单元都要过一遍
- 验证:逐项确认生效,不要凭假设收工
常用示例
常用示例
passwd -l deploy && passwd -S deploy # 锁定密码并确认状态
usermod -s /sbin/nologin deploy # 禁止交互式登录
chage -E 0 deploy # 立即到期,账号不可登录
# 恢复:
chage -E -1 deploy && passwd -u deploy && usermod -s /bin/bash deploy体检:还能登录的账号
体检:还能登录的账号
grep -vE '/(nologin|false)$' /etc/passwd手段对照
| 手段 | 拦住什么 | 拦不住什么 |
|---|---|---|
| 锁定密码 | 密码认证 | 密钥登录与已有会话 |
| 禁止交互登录 | 交互式 shell | 已有会话与计划任务 |
| 账号到期 | 该账号的所有登录方式 | 已经建立的连接 |
| 清理授权文件 | 密钥登录 | 需要主动执行才发现残留 |
| 清理计划任务 | 后台静默执行 | 需要逐项排查 |
锁定密码只是加前缀的软锁,密钥登录、切换用户以及已建立的会话都不受影响;离职场景必须补上禁止交互登录或账号到期。
清理离职账号最容易漏掉计划任务、服务单元与授权文件。按清单逐项过一遍,比上线后发现残留任务还在跑要省事得多。