8.9. Блокировка учетных записей
Проблема
Требуется заблокировать учётную запись и временно запретить пользователю вход в систему, но без удаления учётной записи.
Решение
Чтобы временно деактивировать учётную запись, заблокируйте пароль пользователя ключом -l (lock):
# passwd -l aborg
Password changed.
Следующая команда снимает блокировку с учётной записи:
# passwd -u aborg
Комментарий
Ещё один способ заблокировать учётную запись — вставить восклицательный знак в начало поля пароля в файле /etc/shadow
:
foobar:!$6$wiD1Qr34$mitGZA76MSYCY04AHIYl:12466:0:99999:7:::
Также можно заменить символ в поле пароля в файле /etc/passwd
звездочкой (*) для блокировки:
foober:*:1025:1025:Foober Smith:/home/foober:/bin/bash
Наконец, можно лишить пользователя доступа к командному процессору (shell), установив в качестве оболочки специальную команду /bin/false, которая не позволяет войти в систему:
# usermod -s /bin/false foober
Это полезно, когда требуется заблокировать пользователя, не изменяя его пароль и не затрагивая другие настройки, такие как почтовый сервер или службы, которые могут продолжать работать под этой учётной записью.
Существует также вариант с использованием команды /usr/sbin/nologin, которая выводит сообщение, информирующее пользователя о невозможности входа, при попытке авторизоваться через терминал:
# usermod -s /usr/sbin/nologin foober
Однако самый простой и безопасный способ — использовать команды passwd -l для блокировки и passwd -u для разблокировки. Это позволяет избежать изменений в файлах /etc/passwd
и /etc/shadow
, что снижает риск ошибок.
Важно отметить, что блокировка учётной записи не удаляет данные пользователя и не нарушает работоспособность программ, использующих эту учётную запись для автоматических задач, таких как системные процессы или сервисы. Блокировка может быть снята в любой момент, когда это потребуется.
См. также
passwd(1), passwd(5), usermod(8), shadow(5), nologin(8).