Блокировка и разблокировка пользователя в 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
В данном случае, нас интересует второй параметр, который находится после имени пользователя, и в зависимости от состояния, может иметь значения:
- P или PS — пароль установлен и не заблокирован;
- NP — пароль не установлен, вход без проверки;
- L или LK — пароль заблокирован;
Если пароль заблокирован, нужно его разблокировать введя команду:
sudo passwd пользователь -u
Пароль не разблокируется, если он не задан, чтобы задать, используйте команду:
sudo passwd пользователь
Если установлена регистрационная оболочка nologin, введите в терминале:
sudo usermod пользователь -s /bin/bash
Разблокировка root в Ubuntu и Debian.
По умолчанию в Ubuntu и Debian, у root отсутствует пароль, а аутентификация по нему заблокирована, но не заблокирован сам root. Т. е. root может аутентифицироваться через SSH с помощью ключа и возможно переключиться на него командой «su». Чтобы разблокировать пароль, достаточно его создать:
sudo passwd root
Далее потребуется указать и повторить новый пароль, после чего станет возможным вход систему.