faillock 是与 pam_faillock.so 模块配合使用的工具,用于管理用户的认证失败记录。当用户连续多次登录失败超过预设阈值时,系统会锁定该用户账户。faillock 可以显示或重置特定用户的失败记录,帮助管理员监控和管理账户锁定状态。

基本语法

faillock [选项]
faillock [--dir /路径/到/目录] [--user 用户名] [--reset]

选项

选项 描述
--dir /路径/到/目录 指定存储失败记录的目录,默认为 /var/run/faillock/
--user 用户名 指定要查看或操作的用户。
--reset 清除指定用户的失败记录(若未指定用户,则清除所有用户的记录)。

相关文件

文件路径 描述
/var/run/faillock/* 存储各用户认证失败记录的文件。

示例

1. 查看指定用户的失败记录

faillock --user username

输出示例

username: failures 3, latest 2025-04-27 18:00:00, until 2025-04-27 18:10:00

2. 重置指定用户的失败记录(解锁账户)

faillock --user username --reset

此操作会清除用户的失败计数,若账户因失败次数过多被锁定,重置后可重新尝试登录。

3. 清除所有用户的失败记录

faillock --reset

4. 指定目录操作(非默认路径)

faillock --dir /custom/faillock --user username --reset

常见问题

Q: 如何查看被锁定的用户?

A:

  • 若系统支持 --listfaillock --list
  • 否则需手动遍历目录:ls /var/run/faillock/(文件名即用户名)。

Q: 如何解锁被锁定的用户?

A:
重置用户的失败记录:

faillock --user username --reset

Q: 如何配置锁定策略?

A:
编辑 /etc/security/faillock.conf 或直接修改 PAM 配置文件(如 /etc/pam.d/sshd):

auth required pam_faillock.so preauth deny=5 unlock_time=3600

注意事项

  1. 权限要求

    • 需要 root 权限才能操作其他用户的记录。
  2. 账户锁定机制

    • 锁定策略由 pam_faillock.so 配置决定,通常配置在 /etc/pam.d/system-auth/etc/pam.d/password-auth 文件中。
    • 示例配置:
      auth required pam_faillock.so preauth deny=3 unlock_time=600
      auth [default=die] pam_faillock.so authfail deny=3
      account required pam_faillock.so
      
      • deny=3:失败3次后锁定账户。
      • unlock_time=600:锁定600秒(10分钟)后自动解锁。
  3. 扩展功能(部分系统支持)

    • 列出所有被锁定的用户
      faillock --list  # 部分系统支持此选项
      
    • 解锁账户
      在某些系统中,--unlock 可能用于直接解锁用户,但需确认版本支持:
      faillock --user username --unlock  # 需参考具体系统文档
      
  4. faillog 命令的区别

    • faillockpam_faillock 的配套工具,支持更灵活的锁定策略。
    • faillog 主要用于查看传统 PAM 的失败记录(如 pam_tally2),不支持 pam_faillock 的高级功能。

退出状态

状态码 含义
0 成功执行命令。
非0 命令执行失败(如权限不足、参数错误或文件不存在)。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐