IT技术分享

分享技术文章

Shell 脚本锁定和解锁多个用户?

‘usermod’ & ‘passwd’命令用于一次锁定或解锁一个用户帐户,但您可能需要编写一些小的 shell 脚本来对多个用户帐户执行此操作。

在本教程中,我们将解释如何使用 shell 脚本在 Linux 中同时锁定和解锁多个用户帐户。

什么是 passwd 命令?

passwd文件的命令是最常用的命令由Linux的管理员到在更新用户的认证令牌的一个/etc/shadow文件调用的Linux-PAM和Libuser API。

什么是 usermod 命令?

“usermod命令”命令是经常使用的Linux管理员来修改一个给定的用户帐户信息。它主要用于将用户添加到特定组。

创建 shell 脚本

我们将创建以下三个shell 脚本来一次锁定和解锁多个帐户。

  • 创建一个脚本来锁定用户

  • 创建脚本以检查锁定或解锁用户的状态

  • 创建一个脚本来解锁用户

列出需要锁定或解锁的用户列表,每个用户必须在一个单独的行中。

$ cat user-lists.txt

user1
user2
user3
user4
user5

1)在Linux中锁定多个用户

使用以下 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 user1.
passwd: Success
Locking password for user user2.
passwd: Success
Locking password for user user3.
passwd: Success
Locking password for user user4.
passwd: Success
Locking password for user user5.
passwd: Success

2)在Linux中检查多个锁定用户的状态

使用以下 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

最后,运行脚本检查是否所有用户都已成功锁定:

user1 LK 2021-06-4 0 99999 7 -1(密码已锁定。)
user2 LK 2021-06-4 0 99999 7 -1(密码已锁定。)
user3 LK 2021-06-4 0 99999 7 -1(密码已锁定。)
user4 LK 2021-06-4 0 99999 7 -1(密码已锁定。)
user5 LK 2021-06-4 0 99999 7 -1(密码已锁定。)

如果上面的输出显示'LK'在用户名之后,则用户的密码被锁定。

3)在Linux中解锁多个用户

使用以下 shell 脚本在 Linux 中解锁多个用户帐户:

# 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 user1.
passwd: Success
Unlocking password for user user2.
passwd: Success
Unlocking password for user user3.
passwd: Success
Unlocking password for user user4.
passwd: Success
Unlocking password for user user5.
passwd: Success

解锁后,运行以下shell脚本user-lock-status.sh检查是否所有用户都已成功解锁:

# sh user-lock-status.sh

user1 PS 2021-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
user2 PS 2021-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
user3 PS 2021-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
user4 PS 2021-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
user5 PS 2021-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)

如果上面的输出显示'PS' 在用户名之后,那么用户的密码没有被锁定。


点赞