Thank you for reading this post, don't forget to subscribe!
Команды 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
Наконец, запустите скрипт, чтобы разблокировать список пользователей, указанных в файле:
|
# 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», а это значит, пароль пользователя не заблокирован.