侧边栏壁纸
博主头像
★街角晚灯★博主等级

博观而约取 厚积而薄发

  • 累计撰写 448 篇文章
  • 累计创建 183 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

在Linux中锁定和解锁用户帐户的三种方法

WinJay
2021-10-10 / 0 评论 / 0 点赞 / 175 阅读 / 7645 字 / 正在检测是否收录...
温馨提示:
文章发布较早,内容可能过时,阅读注意甄别。。。。

在Linux中锁定和解锁用户帐户的三种方法

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

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

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

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

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

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

  1. # id nieqf
  2. uid=1000(nieqf) gid=1000(dev) groups=1000(dev)

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

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

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

  1. # passwd -l nieqf
  2. Locking password for user nieqf.
  3. passwd: Success

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

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

  1. # passwd -S nieqf
  2. # passwd --status nieqf
  3. ``
  4. nieqf LK 2019-12-27 0 99999 7 -1 (Password locked.)

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

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

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

grep nieqf /etc/shadow
nieqf:!$6$K3mIlKK$B.Mt1yIKTD3//MiGZ/216YZCGtkQ8SzL204m4ccfXpSUx19OLinLHTJxQWMP.APqvryKTTsrgxoTBuUkDYMLo1:18257:0:99999:7:::

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

passwd -u nieqf 
Unlocking password for user nieqf.
passwd: Success

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

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

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

usermod --lock nieqf
或
usermod -L nieqf

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

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

passwd -S nieqf
或
passwd --status nieqf
nieqf LK 2019-12-27 0 99999 7 -1 (Password locked.)

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

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

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

grep nieqf /etc/shadow
nieqf:!$6$K3mIlKK$B.Mt1yIKTD3//MiGZ/216YZCGtkQ8SzL204m4ccfXpSUx19OLinLHTJxQWMP.APqvryKTTsrgxoTBuUkDYMLo1:18257:0:99999:7:::

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

usermod --unlock nieqf
或
usermod -U nieqf

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

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

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

usermod -s /sbin/nologin nieqf

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

grep nieqf /etc/passwd
nieqf:x:2240:2243::/home/daygeek:/sbin/nologin

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

usermod -s /bin/bash nieqf

如何使用 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.)
...
[root@Applets conf.d]$  passwd -S nieqf															#查看用户
[root@Applets conf.d]$  nieqf PS 2019-12-27 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@Applets conf.d]$  usermod -L nieqf														#用户锁定

[root@Applets conf.d]$  passwd -S nieqf															#查看用户
[root@Applets conf.d]$  nieqf LK 2019-12-27 0 99999 7 -1 (Password locked.)

image.png image.png

[root@Applets conf.d]#  passwd -S nieqf
nieqf PS 2019-12-27 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@Applets conf.d]# usermod -L nieqf
[root@Applets conf.d]#  passwd -S nieqf
nieqf LK 2019-12-27 0 99999 7 -1 (Password locked.)
[root@Applets conf.d]# passwd -u nieqf 
Unlocking password for user nieqf.
passwd: Success
[root@Applets conf.d]#  passwd -S nieqf
nieqf PS 2019-12-27 0 99999 7 -1 (Password set, SHA512 crypt.)
[root@Applets conf.d]# 
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区