Как системный администратор, вам неизбежно придется выполнять запланированные технические обслуживания системы в какой-то момент. Несколько раз ваша система также может столкнуться с какой-то проблемой(проблемами), и вам придется выключить ее, чтобы исправить проблему(проблемы). В любом случае, хорошей идеей является предотвращение подключения нормальных пользователей без привилегий root к системе.
Читайте также: Отключение или включение входа root через SSH и ограничение доступа по SSH в Linux
В этой статье мы опишем, как заблокировать вход нормальных пользователей с помощью файла /etc/nologin и оболочки nologin в Linux. Мы рассмотрим, как установить сообщение, объясняющее пользователям, что происходит на самом деле.
Как заблокировать вход пользователей, используя файл /etc/nologin
Основная функция файла /etc/nologin состоит в том, чтобы показать сообщение (хранящееся в файле) пользователям, пытающимся войти в систему во время процесса выключения.
Как только сообщение будет показано пользователю, процедура входа завершается, предотвращая вход пользователя в систему.
Это можно использовать для блокировки входа пользователей путем ручного создания файла, как показано ниже.
# vi /etc/nologin
Добавьте нижеприведенное сообщение в файл, которое будет показано пользователям, пытающимся войти в систему.
The Server is down for a routine maintenance. We apologize for any inconvenience caused, the system will be up and running in 1 hours time. For more information, contact the system admin [email protected].
Теперь вы можете проверить, все ли работает; как видно на скриншоте ниже, обычный пользователь tecmint
не может войти в систему.

Как заблокировать вход пользователей, используя оболочку nologin
Этот метод работает немного по-другому: он только блокирует пользователю доступ к оболочке. Но он или она все равно может войти в систему через программы, такие как ftp, которые не обязательно требуют оболочки для подключения к системе.
Кроме того, это позволяет заблокировать доступ к оболочке для определенных пользователей в особых сценариях.
На RHEL/CentOS/Fedora
Просто используйте команду chsh (change shell), чтобы изменить оболочку пользователей в файле /etc/passwd с чего-то вроде /bin/bash
или /bin/sh
на /sbin/nologin
, что означает отказ во входе.
# chsh -s /bin/nologin tecmint
На Debian/Ubuntu
Здесь вам нужно использовать файл /bin/false. Команда ниже изменяет оболочку пользователя tecmint на /bin/false
, что означает ничего не делать (после того как пользователь предоставит учетные данные для входа):
$ sudo chsh -s /bin/false tecmint
Вам также может быть интересно прочитать следующие статьи.
- Как включить и отключить вход root в Ubuntu
- Сброс забытого пароля учетной записи root в RHEL/CentOS 7
- Как ограничить пользователей SFTP к домашним каталогам, используя chroot-тюрьму
- Как установить и удалить локальные, пользовательские и системные переменные среды в Linux
Вот и все на данный момент! Если у вас есть вопросы или дополнительные идеи по данной теме, воспользуйтесь формой комментариев ниже.
Source:
https://www.tecmint.com/block-or-disable-normal-user-logins-in-linux/