linux系统默认不启用账户锁定机制,必须通过pam手动配置pam_faillock.so模块并设置deny、unlock_time、fail_interval等参数才能实现登录失败自动锁定;解锁需用faillock --user username --reset或对应命令依锁定方式而定。

Linux系统默认不启用账户锁定机制,必须通过PAM手动配置才能实现登录失败自动锁定。关键在于正确添加pam_faillock.so模块、设置触发条件,并启用账户状态检查。解锁则依赖faillock命令或重置密码字段,不同场景适用不同方法。
配置PAM实现自动锁定
账户锁定不是开箱即用的功能,需编辑对应PAM配置文件:
- Debian/Ubuntu系统:修改
/etc/pam.d/common-auth - RHEL/CentOS/Arch Linux:修改
/etc/pam.d/system-auth或/etc/pam.d/system-login
在文件开头附近插入两行认证规则(参数必须完全一致):
auth [default=ignore] pam_faillock.so authfail deny=5 unlock_time=900 fail_interval=60<br>auth [default=die] pam_faillock.so authsucc deny=5 unlock_time=900 fail_interval=60<br>account required pam_faillock.so
其中:
deny=5 表示60秒内输错5次即触发锁定;
unlock_time=900 表示锁定持续15分钟(单位为秒);
fail_interval=60 定义“连续失败”的时间窗口为60秒;
account required 这一行必不可少,否则锁定逻辑不会生效。
查看与重置锁定状态
用户被锁后仍可由root操作管理,常用命令如下:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
faillock --user username:查看该用户当前失败次数、最后失败时间及是否已被锁定 -
faillock --user username --reset:清除该用户所有失败记录,立即解锁 -
faillock --reset:清空所有用户失败计数(生产环境慎用)
失败记录默认保存在/var/run/faillock/(部分系统为/run/faillock/),重启不丢失。若临时覆盖全局设置,可用--unlock-time 300指定本次命令的解锁时长为5分钟。
手动锁定与彻底禁用登录
除PAM自动锁定外,还可主动禁用特定账户:
-
sudo passwd -l username:在/etc/shadow密码前加!,仅阻止密码登录(SSH密钥仍可能生效) -
sudo usermod -L username:效果同上,是passwd -l的等效替代 -
sudo usermod -s /sbin/nologin username:修改登录Shell,彻底禁止所有交互式登录 -
sudo chage -E 0 username:设账户立即过期,从生命周期层面禁用
验证锁定状态可用:passwd -S username,输出中含LK即表示已锁定;也可直接查/etc/shadow,密码字段以!!开头即为被锁。
解锁被锁账户的实操路径
根据锁定方式选择对应解锁操作:
- PAM自动锁定 → 用
faillock --user username --reset即可恢复 -
passwd -l或usermod -L→ 执行sudo passwd -u username或sudo usermod -U username - Shell设为
/sbin/nologin→ 改回原Shell,如sudo usermod -s /bin/bash username - 账户已过期 → 运行
sudo chage -E -1 username取消过期限制
注意:若用户正通过TTY或其他终端保持登录状态,需先登出再尝试新登录;root始终不受这些限制影响,可用于应急处理。










