Это можно сделать с помощью следующих двух команд Linux тремя способами.
- passwd: команда passwd используется для обновления токенов аутентификации пользователя. Эта задача достигается путем вызова API Linux-PAM и Libuser
- usermod: команда usermod используется для изменения / обновления данных учетной записи пользователя. Она используется для добавления пользователя в определенную группу и т. д.,
Чтобы выяснить этот вопрос, мы выбираем учетную запись Daygeek.
Давайте посмотрим, как это сделать шаг за шагом.
Обратите внимание, вы должны использовать соответствующую учетную запись пользователя, которую вам нужно заблокировать или разблокировать вместо нашей.
Вы можете проверить, доступна ли данная учетная запись пользователя в системе или нет, с помощью команды id.
Да, мой аккаунт доступен в системе:
id daygeek
uid=2240(daygeek) gid=2243(daygeek) groups=2243(daygeek),2244(ladmin)
Способ 1: Как заблокировать, разблокировать и проверить состояние данной учетной записи пользователя в Linux с помощью команды passwd?
Команда passwd является одной из часто используемых команд администратором Linux очень часто.
Используется для обновления токенов аутентификации пользователя в файле /etc/shadow.
Запустите команду passwd с ключом -l, чтобы заблокировать данную учетную запись пользователя.
passwd -l daygeek
Locking password for user daygeek.
passwd: Success
Вы можете проверить статус заблокированной учетной записи либо командой passwd, либо grep указанного имени пользователя из файла /etc/shadow.
Проверка статуса заблокированной учетной записи пользователя с помощью команды passwd.
passwd -S daygeek
passwd --status daygeek
daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
Это выведет краткую информацию о статусе пароля для данной учетной записи.
- LK: пароль заблокирован
- NP: нет пароля
- PS: пароль установлен
Проверка статуса заблокированной учетной записи пользователя с помощью файла /etc/shadow.
Два восклицательных знака будут добавлены перед паролем, если учетная запись уже заблокирована.
grep daygeek /etc/shadow
daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::
Запустите команду passwd с ключом -u, чтобы разблокировать данную учетную запись пользователя.
passwd -u daygeek
Unlocking password for user daygeek.
passwd: Success
Способ 2: Как заблокировать, разблокировать и проверить состояние данной учетной записи пользователя в Linux с помощью команды usermod?
Даже команда usermod также используется администратором Linux очень часто.
Команда usermod используется для изменения / обновления данных учетной записи пользователя.
Она используется для добавления пользователя в определенную группу и т. д.,
Запустите команду usermod с ключом -L, чтобы заблокировать данную учетную запись пользователя.
usermod --lock daygeek
usermod -L daygeek
Вы можете проверить статус заблокированной учетной записи либо командой passwd, либо grep указанного имени пользователя из файла /etc/shadow.
Проверка статуса заблокированной учетной записи пользователя с помощью команды passwd.
passwd -S daygeek
passwd --status daygeek
daygeek LK 2019-05-30 7 90 7 -1 (Password locked.)
Это выведет краткую информацию о статусе пароля для данной учетной записи.
- LK: пароль заблокирован
- NP: нет пароля
- PS: пароль установлен
Проверка статуса заблокированной учетной записи пользователя с помощью файла /etc/shadow.
Два восклицательных знака будут добавлены перед паролем, если учетная запись уже заблокирована.
grep daygeek /etc/shadow
daygeek:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::
Запустите команду usermod с ключом -U, чтобы разблокировать данную учетную запись пользователя.
usermod --unlock daygeek
usermod -U daygeek
Метод 3: Как отключить, включить SSH доступ к данной учетной записи пользователя в Linux с помощью команды usermod?
Альтернативно это может быть сделано путем назначения оболочки nologin данному пользователю. Для этого выполните команду ниже.
usermod -s /sbin/nologin daygeek
Вы можете проверить данные заблокированной учетной записи пользователя, извлекая имя пользователя из файла /etc/passwd.
grep daygeek /etc/passwd
daygeek:x:2240:2243::/home/daygeek:/sbin/nologin
Мы можем разрешить пользователю доступ по ssh, назначив обратно старую оболочку.
usermod -s /bin/bash daygeek
Как заблокировать, разблокировать и проверить состояние многопользовательской учетной записи в Linux с помощью скрипта?
Если вы хотите заблокировать / разблокировать более одной учетной записи, вы можете использовать скрипт.
Да, мы можем написать небольшой скрипт для этого. Для этого используйте следующий скрипт оболочки.
Создайте список пользователей. Каждый пользователь должен быть в отдельной строке.
cat user-lists.txt
u1
u2
u3
u4
u5
Используйте следующий скрипт оболочки для блокировки учетной записи нескольких пользователей в 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 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.
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
Наконец, запустите скрипт, чтобы добиться этого.
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.)
Используйте следующий скрипт оболочки, чтобы разблокировать учетную запись нескольких пользователей в 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 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, чтобы проверить, что эти заблокированные учетные записи пользователей разблокированы в Linux.
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.)