Помощник веб-разработчикаСтатьиИнструменты

Блокировка и разблокировка пользователя в Linux.

Удаление пользователя.

Не стоит удалять root, лучше заблокировать. При необходимости его будет возможно разблокировать, в противном случае, рискуете утратить контроль над системой.

Если пользователь ненужен и не пригодится в будущем, можно просто удалить его. Если в системе используется SELinux или не знаете, для удаления введите команду:

sudo userdel пользователь -Z

Если SELinux не установлен или в ходе выполнения предыдущей операции возникла ошибка «требуется ядро с поддержкой SELinux» — удалите командой:

sudo userdel пользователь

Блокировка пользователя.

Предупреждение, если нужно заблокировать root:
по скольку настройки системы неизвестны, во избежание проблем, блокировать root лучше из сессии администратора, а не root. Смысл в том, что если у администратора достаточно прав на блокировку, то достаточно и на разблокировку, в противном случае имеется риск утратить возможность полноценного администрирования.

Чтобы заблокировать для пользователя любую возможность аутентификации в системе, необходимо сменить регистрационную оболочку на nologin, для этого введите в терминале:

Для CentOC и RHEL:

sudo usermod -s /sbin/nologin пользователь

Для Ubuntu, Linux Mint и Debian:

sudo usermod -s /usr/sbin/nologin пользователь

Теперь пользователь не сможет аутентифицироваться и не возможно будет переключиться на него с помощью «su». При наличии ключей или при вводе правильного пароля, будут показаны время и дата с IP-адресом последних попыток входа. Кроме того, будет показано сообщение «Эта учетная запись в данный момент недоступна».

Во многих дистрибутивах есть возможность изменить сообщение на произвольный текст (эта функция отсутствует в Debian и Ubuntu), для этого введите в терминале:

Будьте внимательны, если не указать расширение файла будет создан файл nologin, что приведёт к блокировке входа для всех пользователей, кроме root.

echo "Ваш текст" | sudo tee /etc/nologin.txt

Данный конвейер создаст файл nologin.txt (если его нет), и запишет в него текст. Чтобы восстановить текст по умолчанию, удалите этот файл командой:

sudo rm /etc/nologin.txt

Если необходимо отклонять попытки входа не выдавая никаких сообщений, следует заблокировать для пользователя возможность подключения с помощью SSH и его пароль. Заблокировать аутентификацию через SSH можно многими способами (зависит от настроек SSH-сервера), универсальный способ — переименовать каталог .ssh в домашнем каталоге пользователя (универсальный, но не оптимальный).

Блокировка пароля.

Блокировка пароля позволит предотвратить аутентификацию по нему, но в то же время не затронет возможность входа с помощью SSH-ключей или модуля PAM, например переключение используя «su». Заблокировать пароль можно командой:

sudo passwd пользователь -l

Разблокировка пользователя.

Вход для пользователя может быть заблокирован двумя способами, это запрет на аутентификацию по паролю и запрет на любой вход. Чаще всего блокируют аутентификацию по паролю, чтобы проверить его состояние, введите команду:

sudo passwd пользователь -S

В данном случае, нас интересует второй параметр, который находится после имени пользователя, и в зависимости от состояния, может иметь значения:

Если пароль заблокирован, нужно его разблокировать введя команду:

sudo passwd пользователь -u

Пароль не разблокируется, если он не задан, чтобы задать, используйте команду:

sudo passwd пользователь

Если установлена регистрационная оболочка nologin, введите в терминале:

sudo usermod пользователь -s /bin/bash

Разблокировка root в Ubuntu и Debian.

По умолчанию в Ubuntu и Debian, у root отсутствует пароль, а аутентификация по нему заблокирована, но не заблокирован сам root. Т. е. root может аутентифицироваться через SSH с помощью ключа и возможно переключиться на него командой «su». Чтобы разблокировать пароль, достаточно его создать:

sudo passwd root

Далее потребуется указать и повторить новый пароль, после чего станет возможным вход систему.