Команды usermod и passwd используются для блокировки или разблокировки одной учетной записи пользователя за раз, но вам может потребоваться написать несколько небольших bash скриптов для выполнения этого действия для нескольких учетных записей пользователей.
В этом руководстве мы объясним, как заблокировать и разблокировать несколько учетных записей пользователей одновременно в Linux с помощью shell скрипта.
Что такое команда passwd?
Команда passwd – одна из наиболее часто используемых администратором Linux команд для обновления токенов аутентификации пользователей в файле /etc/shadow путем вызова Linux-PAM и Libuser API.
Создание скрипта shell
Мы создадим следующие три скрипта bash для одновременной блокировки и разблокировки нескольких учетных записей.
- Cкрипт для блокировки пользователей
- Cкрипт для проверки статуса заблокированных или разблокированных пользователей
- Cкрипт для разблокировки пользователей
Составьте список пользователей, которых нужно заблокировать или разблокировать.
Каждый пользователь должен быть в отдельной строке.
$ cat user-lists.txt
u1
u2
u3
u4
u5
1) Блокировка нескольких пользователей Linux
Используйте следующий скрипт для блокировки нескольких учетных записей пользователей Linux.
# user-lock.sh
#!/bin/bash
for user in `cat user-lists.txt`
do
passwd -l $user
done
Установите права на выполнение файла 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
2) Проверка статуса нескольких заблокированных пользователей Linux
Используйте следующий скрипт для проверки состояния заблокированных учетных записей пользователей:
# vi user-lock-status.sh
#!/bin/bash
for user in `cat user-lists.txt`
do
passwd -S $user
done
Установите права на выполнение файла usr-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.)
Если в приведенном выше выводе после имени пользователя отображается «LK», что значит что пароль пользователя заблокирован.
3) Разблокировка нескольких пользователей Linux
Используйте следующий скрипт для разблокировки нескольких учетных записей пользователей Linux:
# user-unlock.sh
#!/bin/bash
for user in `cat user-lists.txt`
do
passwd -u $user
don
Установите права на выполнение файл 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
После разблокировки запустите user-lock-status.sh, чтобы проверить, все ли пользователи были успешно разблокированы:
# 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.)
Если в приведенном выше выводе после имени пользователя отображается «PS», а это значит, пароль пользователя не заблокирован.
Заключение
В этом руководстве вы узнали, как заблокировать и разблокировать несколько учетных записей пользователей одновременно Linux с помощью скриптов.
2021-03-03T08:22:10
Скрипты