Команды usermod и passwd используются для блокировки или разблокировки одной учетной записи пользователя за раз, но вам может потребоваться написать несколько небольших bash скриптов для выполнения этого действия для нескольких учетных записей пользователей.
В этом руководстве мы объясним, как заблокировать и разблокировать несколько учетных записей пользователей одновременно в Linux с помощью shell скрипта.
Что такое команда passwd?
Команда passwd – одна из наиболее часто используемых администратором Linux команд для обновления токенов аутентификации пользователей в файле /etc/shadow путем вызова Linux-PAM и Libuser API.
Создание скрипта shell
Мы создадим следующие три скрипта bash для одновременной блокировки и разблокировки нескольких учетных записей.
Cкрипт для блокировки пользователей
Cкрипт для проверки статуса заблокированных или разблокированных пользователей
Cкрипт для разблокировки пользователей
Составьте список пользователей, которых нужно заблокировать или разблокировать.
Каждый пользователь должен быть в отдельной строке.
YAML
1
2
3
4
5
6
7
$catuser-lists.txt
u1
u2
u3
u4
u5
1) Блокировка нескольких пользователей Linux
Используйте следующий скрипт для блокировки нескольких учетных записей пользователей Linux.
YAML
1
2
3
4
5
6
7
# user-lock.sh
#!/bin/bash
foruserin`catuser-lists.txt`
do
passwd-l$user
done
Установите права на выполнение файла user-lock.sh.
YAML
1
# chmod + user-lock.sh
Наконец, запустите его, чтобы заблокировать список пользователей, указанных в файле.
YAML
1
2
3
4
5
6
7
8
9
10
11
12
# sh user-lock.sh
Lockingpasswordforuseru1.
passwd: Success
Lockingpasswordforuseru2.
passwd: Success
Lockingpasswordforuseru3.
passwd: Success
Lockingpasswordforuseru4.
passwd: Success
Lockingpasswordforuseru5.
passwd: Success
2) Проверка статуса нескольких заблокированных пользователей Linux
Используйте следующий скрипт для проверки состояния заблокированных учетных записей пользователей:
YAML
1
2
3
4
5
6
7
# vi user-lock-status.sh
#!/bin/bash
foruserin`catuser-lists.txt`
do
passwd-S$user
done
Установите права на выполнение файла usr-lock-status.sh
YAML
1
# chmod + user-lock-status.sh
Наконец, запустите его, чтобы проверить, все ли пользователи были успешно заблокированы:
YAML
1
2
3
4
5
6
7
# sh user-lock-status.sh
u1LK2019-06-100999997-1(Passwordlocked.)
u2LK2019-06-100999997-1(Passwordlocked.)
u3LK2019-06-100999997-1(Passwordlocked.)
u4LK2019-06-100999997-1(Passwordlocked.)
u5LK2019-06-100999997-1(Passwordlocked.)
Если в приведенном выше выводе после имени пользователя отображается «LK», что значит что пароль пользователя заблокирован.
3) Разблокировка нескольких пользователей Linux
Используйте следующий скрипт для разблокировки нескольких учетных записей пользователей Linux:
YAML
1
2
3
4
5
6
7
# user-unlock.sh
#!/bin/bash
foruserin`catuser-lists.txt`
do
passwd-u$user
don
Установите права на выполнение файл user-unlock.sh
YAML
1
# chmod + user-unlock.sh
Наконец, запустите скрипт, чтобы разблокировать список пользователей, указанных в файле:
YAML
1
2
3
4
5
6
7
8
9
10
11
12
# sh user-unlock.sh
Unlockingpasswordforuseru1.
passwd: Success
Unlockingpasswordforuseru2.
passwd: Success
Unlockingpasswordforuseru3.
passwd: Success
Unlockingpasswordforuseru4.
passwd: Success
Unlockingpasswordforuseru5.
passwd: Success
После разблокировки запустите user-lock-status.sh, чтобы проверить, все ли пользователи были успешно разблокированы:
YAML
1
2
3
4
5
6
7
# sh user-lock-status.sh
u1PS2019-06-100999997-1(Passwordset,SHA512crypt.)
u2PS2019-06-100999997-1(Passwordset,SHA512crypt.)
u3PS2019-06-100999997-1(Passwordset,SHA512crypt.)
u4PS2019-06-100999997-1(Passwordset,SHA512crypt.)
u5PS2019-06-100999997-1(Passwordset,SHA512crypt.)
Если в приведенном выше выводе после имени пользователя отображается «PS», а это значит, пароль пользователя не заблокирован.