Linux怎么查看用户是否锁定

来源:开发教程作者:印尼程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《Linux怎么查看用户是否锁定》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《Linux怎么查看用户是否锁定》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统管理中,用户账号锁定是常见的安全管控手段,当我们需要确认某个用户是否可以正常登录,或者排查登录失败问题时,首先需要查看该用户是否处于锁定状态。不同场景下可以使用不同的方式来判断,下面逐一介绍常用的方法。

Linux怎么查看用户是否锁定

方法一:使用passwd命令查看

passwd命令除了修改用户密码,也可以用来查看用户的锁定状态,执行以下命令即可:

# 查看指定用户锁定状态,替换username为目标用户名
passwd -S username

命令输出会包含多个字段,第一个字段是用户名,第二个字段就是状态标识:

  • 如果第二个字段是L,表示用户账号已被锁定
  • 如果第二个字段是P,表示用户有可用的密码,账号正常
  • 如果第二个字段是NP,表示用户没有设置密码,账号无密码状态

方法二:查看/etc/shadow文件

Linux系统的用户密码及锁定信息存储在/etc/shadow文件中,该文件只有root用户有权限读取。文件每行对应一个用户,格式为用冒号分隔的9个字段,其中第二个字段是密码字段,通过它的内容可以判断用户是否锁定。

使用以下命令查看目标用户的shadow记录:

# 查看目标用户的shadow记录,替换username为实际用户名
grep "^username:" /etc/shadow

密码字段的常见情况如下:

  • 如果密码字段以!或者!!开头,说明用户账号被锁定,这两个符号是锁定的标识
  • 如果密码字段是普通加密字符串,没有特殊前缀,说明账号正常,密码可用
  • 如果密码字段是*,表示账号被禁用,无法登录

方法三:使用chage命令查看

chage命令用来查看和修改用户密码的过期信息,也可以间接判断用户是否锁定,执行命令如下:

# 查看用户密码过期信息,替换username为目标用户名
chage -l username

如果输出中密码过期时间显示为已经过期,且密码失效时间也已经到达,同时账号没有其他可用登录方式,可能说明账号被锁定。不过该方法不如前两种直接,更适合结合密码策略一起排查问题。

方法四:查看登录失败计数(PAM相关场景)

如果系统配置了PAM的pam_tally2或者pam_faillock模块,用户多次登录失败会被自动锁定,此时可以用对应模块的命令查看锁定状态。

如果是pam_tally2模块,执行以下命令:

# 查看用户登录失败计数,替换username为目标用户名
pam_tally2 --user username

如果输出中失败次数不为0,且超过了系统设置的阈值,说明用户被临时锁定。如果是pam_faillock模块,执行:

# 查看用户faillock状态,替换username为目标用户名
faillock --user username

用户锁定的常见操作

如果需要锁定用户,可以使用以下命令:

# 锁定用户,替换username为目标用户名
passwd -l username

如果需要解锁用户,使用以下命令:

# 解锁用户,替换username为目标用户名
passwd -u username

需要注意的是,解锁用户后需要确保用户密码处于正常状态,否则解锁后依然无法登录。

不同方法的适用场景

方法适用场景优势
passwd -S快速查看单个用户状态输出直观,状态标识清晰
查看/etc/shadow批量检查用户状态、深入排查问题可以直接看到底层存储的锁定标识
chage -l结合密码过期策略排查问题可以同步看到密码相关的所有策略信息
PAM相关命令排查登录失败导致的自动锁定可以看到登录失败次数和锁定原因

实际使用中可以根据具体需求选择合适的方法,大多时候使用passwd -S或者查看/etc/shadow文件就可以快速确认用户是否被锁定。

Linux用户锁定passwd命令chage命令shadow文件修改时间:2026-06-19 17:51:29

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。