菜鸟科技网

如何解锁被命令锁定的账号?

在 Linux/Unix 系统中解锁用户账号

这种情况通常发生在用户输错密码次数过多,导致账号被系统策略锁定。

如何解锁被命令锁定的账号?-图1
(图片来源网络,侵删)

查看账号是否被锁定

你需要确认账号确实处于锁定状态,可以使用 passwd 命令配合 -S (status) 参数来查看。

sudo passwd -S <用户名>

输出示例:

  • 用户名 LK 2025/10/27 0 99999 7 -1 (LK = Locked,表示已锁定)
  • 用户名 PS 2025/10/27 0 99999 7 -1 (PS = Password Set,表示正常)

解锁账号

解锁账号的核心操作是修改该用户的密码,这会自动清除锁定状态,你需要有 rootsudo 权限。

修改密码(最常用)

如何解锁被命令锁定的账号?-图2
(图片来源网络,侵删)
sudo passwd <用户名>

执行此命令后,系统会提示你输入两次新密码,只要成功设置新密码,账号就会被自动解锁。

直接清除密码字段(更彻底)

如果你想重置用户的密码(使其下次登录时必须设置新密码),可以直接编辑 /etc/shadow 文件。此方法需要非常小心,操作错误可能导致系统无法启动。

# 1. 备份 shadow 文件(强烈建议)
sudo cp /etc/shadow /etc/shadow.bak
# 2. 编辑 shadow 文件
sudo nano /etc/shadow
# 或者使用 vim
# sudo vim /etc/shadow
# 3. 找到对应的用户行,将密码字段(第二个冒号后)的内容清空,只留一个或两个感叹号
# 将
# user1:$6$xyz...:19000:0:99999:7:::
# 修改为
# user1::19000:0:99999:7:::
# 或者
# user1!:19000:0:99999:7:::
# 4. 保存文件并退出
# 5. 验证解锁状态
sudo passwd -S <用户名>
# 此时状态通常会变为 "NP" (No Password) 或 "L" (如果还有其他限制),表示密码已重置。

在 Windows 系统中解锁/启用用户账号

在 Windows 中,账号被锁定通常是由于 Active Directory (AD) 策略或本地安全策略。

如何解锁被命令锁定的账号?-图3
(图片来源网络,侵删)

通过图形界面解锁(最简单)

  1. Win + R,输入 lusrmgr.msc 并回车(Windows 专业版/企业版)。
  2. 在左侧导航栏中,点击“用户”。
  3. 在右侧窗口中,找到被锁定的用户账号,它旁边通常会有一个锁定的图标。
  4. 右键点击该用户,选择“属性”。
  5. 在“常规”选项卡下,确保“账户已禁用”没有被勾选,如果账号因密码错误被锁定,这里通常没有选项,你需要使用命令行或计算机管理。
  6. 对于因密码错误导致的锁定,更简单的方法是使用计算机管理
    • 右键点击“此电脑” -> “管理”。
    • 展开“系统工具” -> “本地用户和组” -> “用户”。
    • 双击被锁定的用户。
    • 在“账户”选项卡下,点击“解锁账户”按钮。

通过命令行解锁(PowerShell)

这是现代 Windows 系统推荐的方法,功能强大。

a. 解除账户锁定状态

# 查看当前账户锁定策略
net accounts /lockoutthreshold
# 解除指定用户的锁定状态
# <用户名> 替换为实际用户名,<计算机名> 替换为你的计算机名
net user <用户名> /domain /unlock  # 如果是域账户
# 或者对于本地账户
net user <用户名> /add  # 重新添加用户会解锁,但会重置所有信息,慎用

更常用的方法是使用 Active Directory 模块(需要域环境或 RSAT 工具)。

# 导入 Active Directory 模块
Import-Module ActiveDirectory
# 解除指定域用户的锁定
Unlock-ADAccount -Identity <用户名> -Confirm:$false

b. 启用被禁用的账户

如果账号被管理员手动禁用,可以使用以下命令启用:

# 本地账户
net user <用户名> /active:yes
# 域账户 (需要 Active Directory 模块)
Enable-ADAccount -Identity <用户名> -Confirm:$false

解锁网络设备(如路由器、交换机)的 CLI

在网络设备中,"解锁账号"通常指解除因输错密码导致的 EXEC 会话(用户模式或特权模式)锁定,而不是删除和重建用户。

进入初始配置对话

如果设备允许,最简单的方法是重启设备并进入初始配置向导,重新设置密码。

Router> enable
Router# setup

按照提示操作即可。

使用配置寄存器重置密码(高级方法)

这是最经典、最通用的方法,适用于大多数 Cisco 设备。这会重置配置密码,但不会删除 running-config 或 startup-config。

警告:此操作需要物理访问设备或通过控制台连接,操作不当可能导致设备暂时无法访问。

步骤概览:

  1. 重启设备并进入 ROMMON 模式

    • 重启设备,在启动时按 Ctrl+Break 或特定键(如 Esc)中断启动过程,进入 rommon 1 > 提示符。
  2. 修改配置寄存器值

    • 默认配置寄存器值是 0x2102,为了绕过启动时的配置文件,需要将其改为 0x2142
      rommon 1 > confreg 0x2142
      rommon 2 > reset
  3. 进入特权模式并忽略配置

    • 设备重启后,会跳过 startup-config 的加载,此时你处于初始配置状态。
      Router> enable
      Router# 
  4. 将当前运行配置复制到启动配置

    • 这样就把旧的配置(包括旧密码)加载到了内存中,但不会在下次重启时生效。
      Router# copy running-config startup-config
      Destination filename [startup-config]? 
      Building configuration...
      [OK]
  5. 重新进入全局配置模式并修改密码

    • 现在你可以修改任何用户的密码了。
      Router# configure terminal
      Router(config)# username admin secret new_password
      Router(config)# exit
  6. 恢复配置寄存器值并保存

    • 将配置寄存器改回 0x2102,并保存配置。
      Router(config)# config-register 0x2102
      Router(config)# end
      Router# write memory
      Building configuration...
      [OK]
  7. 重启设备

    • 设备将使用新密码正常启动。
      Router# reload

场景 关键命令/操作 说明
Linux 系统用户 sudo passwd <用户名> 修改密码是解锁最直接的方法。
Windows 本地用户 lusrmgr.mscnet user <用户名> /active:yes 图形界面或命令行启用/解锁。
Windows 域用户 Unlock-ADAccount -Identity <用户名> 需要域环境和 PowerShell。
网络设备 CLI confreg 0x2142 + 修改密码 经典的密码重置流程,不丢失配置。

重要提示:

  • 权限是关键:解锁操作通常需要最高级别的管理员权限(如 root, Administrator, enable)。
  • 安全第一:在执行任何可能影响系统或设备正常运行的命令前,请务必备份重要配置。
  • 了解原因:在解锁前,最好先弄清楚账号为何被锁定,以避免再次发生。
分享:
扫描分享到社交APP
上一篇
下一篇