在 Linux 中锁定和解锁用户帐户的三种方法
创始人
2024-03-02 03:02:32
0

如果你已经在你的组织中实施了某种密码策略,你无需看这篇文章了。但是在这种情况下,如果你给账户设置了 24 小时的锁定期,你需要手动解锁用户帐户。

本教程将帮助你在 Linux 中手动锁定和解锁用户帐户。

这可以通过三种方式使用以下两个 Linux 命令来完成。

  • passwd:用于更新用户的身份验证令牌。这个任务是通过调用 Linux PAM 和 libuser API 来实现。
  • usermod:用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中等等功能。

为了说明这一点,我们选择 daygeek 用户帐户。让我们看看,怎么一步步来实现的。

请注意,你必须使用你需要锁定或解锁的用户的帐户,而不是我们的帐户。你可以使用 id 命令检查给定的用户帐户在系统中是否可用。是的,我的这个帐户在我的系统中是可用的。

# id daygeek

uid=2240(daygeek) gid=2243(daygeek) groups=2243(daygeek),2244(ladmin)

方法1: 如何使用 passwd 命令锁定、解锁和检查 Linux 中给定用户帐户的状态?

passwd 命令是 Linux 管理员经常使用的命令之一。它用于更新 /etc/shadow 文件中用户的身份验证令牌。

使用 -l 开关运行 passwd 命令,锁定给定的用户帐户。

# passwd -l daygeek

Locking password for user daygeek.
passwd: Success

你可以通过 passwd 命令或从 /etc/shadow 文件中获取给定用户名来检查锁定的帐户状态。

使用 passwd 命令检查用户帐户锁定状态。

# passwd -S daygeek
或
# passwd --status daygeek

daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)

这将输出给定帐户密码状态的简短信息。

  • LK:密码被锁定
  • NP:没有设置密码
  • PS:密码已设置

使用 /etc/shadow 文件检查锁定的用户帐户状态。如果帐户已被锁定,密码前面将添加两个感叹号。

# grep daygeek /etc/shadow

daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::

使用 -u 开关运行 passwd 命令,可以解锁给定的用户帐户。

# passwd -u daygeek

Unlocking password for user daygeek.
passwd: Success

方法2:如何使用 usermod 命令在 Linux 中锁定、解锁和检查给定用户帐户的状态?

usermod 命令也经常被 Linux 管理员使用。usermod 命令用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中,等等。

使用 -L 开关运行 usermod 命令,锁定给定的用户帐户。

# usermod --lock daygeek
或
# usermod -L daygeek

你可以通过 passwd 命令或从 /etc/shadow 文件中获取给定用户名来检查锁定的帐户状态。

使用 passwd 命令检查用户帐户锁定状态。

# passwd -S daygeek
或
# passwd --status daygeek

daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)

这将输出给定帐户密码状态的简短信息。

  • LK:密码被锁定
  • NP:没有设置密码
  • PS:密码已设置

使用 /etc/shadow 文件检查锁定的用户帐户状态。如果帐户已被锁定,密码前面将添加两个感叹号。

# grep daygeek /etc/shadow

daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::

使用 -U 开关运行 usermod 命令以解锁给定的用户帐户。

# usermod --unlock daygeek
或
# usermod -U daygeek

方法-3:如何在 Linux 中使用 usermod 命令禁用、启用对给定用户帐户的 SSH 访问?

usermod 命令也是经常被 Linux 管理员使用的命令。usermod 命令用于修改/更新给定用户的帐户信息。它用于将用户添加到特定的组中,等等。

替代的,锁定可以通过将 nologin shell 分配给给定用户来完成。为此,可以运行以下命令。

# usermod -s /sbin/nologin daygeek

你可以通过从 /etc/passwd 文件中给定用户名来检查锁定的用户帐户详细信息。

# grep daygeek /etc/passwd

daygeek:x:2240:2243::/home/daygeek:/sbin/nologin

我们可以通过分配回原来的 shell 来启用用户的 ssh 访问。

# usermod -s /bin/bash daygeek

如何使用 shell 脚本锁定、解锁和检查 Linux 中多个用户帐户的状态?

如果你想锁定/解锁多个帐户,那么你需要找个脚本。

是的,我们可以编写一个小的 shell 脚本来执行这个操作。为此,请使用以下 shell 脚本。

创建用户列表。每个用户信息在单独的行中。

$ cat user-lists.txt

u1
u2
u3
u4
u5

使用以下 shell 脚本锁定 Linux中 的多个用户帐户。

# user-lock.sh

#!/bin/bash
for user in `cat user-lists.txt`
do
  passwd -l $user
done

user-lock.sh 文件设置为可执行权限。

# chmod + user-lock.sh

最后运行脚本来达成目标。

# sh user-lock.sh

Locking password for user u1.
passwd: Success
Locking password for user u2.
passwd: Success
Locking password for user u3.
passwd: Success
Locking password for user u4.
passwd: Success
Locking password for user u5.
passwd: Success

使用以下 shell 脚本检查锁定的用户帐户。

# vi user-lock-status.sh

#!/bin/bash
for user in `cat user-lists.txt`
do
  passwd -S $user
done

设置 user-lock-status.sh 可执行权限。

# chmod + user-lock-status.sh

最后运行脚本来达成目标。

# sh user-lock-status.sh

u1 LK 2019-06-10 0 99999 7 -1 (Password locked.)
u2 LK 2019-06-10 0 99999 7 -1 (Password locked.)
u3 LK 2019-06-10 0 99999 7 -1 (Password locked.)
u4 LK 2019-06-10 0 99999 7 -1 (Password locked.)
u5 LK 2019-06-10 0 99999 7 -1 (Password locked.)

使用下面的 shell 脚本来解锁多个用户。

# user-unlock.sh

#!/bin/bash
for user in `cat user-lists.txt`
do
  passwd -u $user
done

设置 user-unlock.sh 可执行权限。

# chmod + user-unlock.sh

最后运行脚本来达成目标。

# sh user-unlock.sh

Unlocking password for user u1.
passwd: Success
Unlocking password for user u2.
passwd: Success
Unlocking password for user u3.
passwd: Success
Unlocking password for user u4.
passwd: Success
Unlocking password for user u5.
passwd: Success

运行相同的 shell 脚本 user-lock-status.sh,检查这些锁定的用户帐户在 Linux 中是否被解锁。

# sh user-lock-status.sh

u1 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
u2 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
u3 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
u4 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
u5 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)

via: https://www.2daygeek.com/lock-unlock-disable-enable-user-account-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:heguangzhi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

用AI做的短视频账号,已经...
操着一口流利英语的“战地记者”,正拿着自拍杆,声称自己在一千八百多...
2025-07-07 07:14:10
女子网恋20天被骗近600...
前不久,福建南安警方破获一起上百人受骗的电信网络诈骗案,抓获涉诈犯...
2025-06-23 16:42:41
抖音:高考期间严打AI押题...
有账号宣称可提供“高考作弊工具及手段”,包括但不限于发布替考/代考...
2025-06-07 22:44:01
北大“韦神”突然开号,本人...
6月6日,有网友在短视频平台发现一账号用户名为韦东奕,用的是真名和...
2025-06-07 20:40:59
AI“学者王立群”推销健身...
6月1日,知名学者王立群公开谴责个人形象被AI合成视频、在镇政府视...
2025-06-01 16:40:04

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...