头图

“usermod”和“passwd”命令用于一次锁定或解锁一个用户帐户,但也可以使用shell 循环用于一次设置多个用户账号。
我们将创建以下三个Shell脚本来锁定和解锁多个帐户和查看账号状态。

创建锁定用户的脚本
创建查看用户状态的脚本
创建解锁用户的脚本
列出需要锁定或解锁的用户列表,前提是已经创建了下面的用户:

[root@localhost ~]# cat user-lists.txt
u1
u2
u3
u4
u5
[root@localhost ~]# tail -5 /etc/passwd
u11002:1002::/home/u1:/bin/bash
u21003:1003::/home/u2:/bin/bash
u31004:1004::/home/u3:/bin/bash
u41005:1005::/home/u4:/bin/bash
u51006:1006::/home/u5:/bin/bash
如何在Linux中锁定和解锁多个用户如何在Linux中锁定和解锁多个用户

脚本一、锁定多个用户的脚本
使用以下Shell脚本在Linux中锁定多个用户帐户。

[root@localhost ~]# vim user-lock.sh

!/bin/bash

for user in cat user-lists.txt
do
passwd -l $user
done
最后,运行脚本锁定文件中的用户列表。

[root@localhost ~]# 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
如何在Linux中锁定和解锁多个用户如何在Linux中锁定和解锁多个用户

脚本二、查看用户锁定状态的脚本
使用以下shell脚本来检查锁定的用户帐户的状态:

[root@localhost ~]# vim user-lock-status.sh

!/bin/bash

for user in cat user-lists.txt
do
passwd -S $user
done
最后运行该脚本,查看用户锁定状态:

[root@localhost ~]# sh user-lock-status.sh
u1 LK 2021-02-28 0 99999 7 -1 (Password locked.)
u2 LK 2021-02-28 0 99999 7 -1 (Password locked.)
u3 LK 2021-02-28 0 99999 7 -1 (Password locked.)
u4 LK 2021-02-28 0 99999 7 -1 (Password locked.)
u5 LK 2021-02-28 0 99999 7 -1 (Password locked.)
如何在Linux中锁定和解锁多个用户如何在Linux中锁定和解锁多个用户
如果上面的输出在用户名后面显示LK,则表明用户密码已锁定。

脚本三、解锁多个用户的脚本
使用以下Shell脚本来解锁多个用户帐户:

[root@localhost ~]# vim user-unlock.sh

!/bin/bash

for user in cat user-lists.txt
do
passwd -u $user
done
运行该脚本解锁用户密码:

[root@localhost ~]# 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
如何在Linux中锁定和解锁多个用户如何在Linux中锁定和解锁多个用户
如果以上输出在用户名后面显示PS,则用户密码未锁定。

总结
在本教程中,学习了如何使用Shell脚本在Linux中锁定和解锁多个用户帐户。


刘遄
25 声望17 粉丝

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。