锁定账号解决什么问题
人员离职、安全事件处置、账号临时冻结,都需要快速让一个 Linux 账号无法再登录。passwd -l 与 usermod -L 的做法是在 shadow 文件的密码字段前加感叹号前缀,使该口令不再能通过校验,成本极低且可逆,适合作为第一时间的处置手段。
基本信息
| 适用平台 | Linux(shadow 体系,需 root) |
|---|---|
| 锁定命令 | passwd -l <账号> 或 usermod -L <账号> |
| 解锁命令 | passwd -u <账号> 或 usermod -U <账号> |
| 状态查询 | passwd -S <账号> |
典型使用场景
- 离职处置第一步:先锁账号止血,再清理密钥、会话与计划任务
- 安全事件响应:怀疑账号被使用但不宜直接删除时,先冻结
- 共享账号回收:停用长期无人认领的账号,纳入定期复核
- 测试账号临时封闭:保留数据与家目录,只是暂时不给登录
锁定与解锁
锁定与解锁
# 锁定:shadow 密码字段前加感叹号前缀
passwd -l olduser
# 查看状态:LK 表示已锁定,PS 表示有可用口令,NP 表示空口令
passwd -S olduser
# 解锁
passwd -u olduser
# 等价写法
usermod -L olduser && usermod -U olduser
# 核查全部被锁与空口令账号
awk -F: '($2 ~ /^!/) {print $1" locked"}' /etc/shadow | head
awk -F: '($2=="") {print $1" empty-password"}' /etc/shadow状态与字段读法
| 对象 | 含义 | 异常表现 |
|---|---|---|
| passwd -S 的 LK | 已锁定 | 刚离职或刚处置的账号应为此状态 |
| passwd -S 的 NP | 无口令 | 风险极高,任何人可空口令登录 |
| passwd -S 的 PS | 有可用口令 | 需确认是否仍应保留 |
| shadow 第二列 | 口令哈希或锁标记 | 以感叹号开头表示锁定,字段为空表示无口令 |
passwd -l 不影响已在运行的进程与 SSH 密钥:它只挡住口令登录。彻底停用要同时删除 authorized_keys、终止会话、移除计划任务与 sudo 例外。
锁定与删除的差别要提前想清:锁定保留家目录与文件属主,删除会造成文件无主。离职场景通常先锁后删,中间留出交接期。
定期核查哪些账号处于锁定状态:长期锁定又无人认领的账号应转入删除流程,否则清单会越来越长,真正的风险账号反而被淹没。