- Способы ограничения возможности входа пользователей в Ubuntu
- Как ограничить доступ с помощью /etc/passwd
- Как ограничить вход с помощью /etc/shadow
- Как ограничить вход с помощью /etc/nologin
- Итоги
- Как заблокировать или отключить обычные входы пользователей в Linux
- Как заблокировать вход пользователей в систему с помощью файла /etc/nologin
- Как заблокировать вход пользователей в систему с помощью оболочки nologin
- В RHEL/CentOS/Fedora
- На Дебиан/Убунту
Способы ограничения возможности входа пользователей в Ubuntu
Основная часть системного администрирования – конфигурирование и управление пользователями и группами. Эта задача включает в себя мониторинг возможностей получения доступа в систему всех ее подразделений.
Данное руководство описывает основные понятия об управлении пользователями и регистрации их авторизации.
Эти понятия изучаются на Ubuntu 12.04 VPS, но данные действия можно выполнить на любом современном дистрибутиве Linux.
Как известно, некоторые из пользователей сервера могут быть связаны с сервисами, а потому они не предназначены для использования в качестве обычных учетных записей.
Данное руководство рассматривает несколько способов ограничения возможности входа в систему таких пользователей.
Как ограничить доступ с помощью /etc/passwd
Один из способов ограничения возможности входа – это задать регистрационной оболочке учетной записи специальное значение.
Примером этому является пользователь «messagebus» в файле «/etc/passwd»:
less /etc/passwd | grep messagebus
messagebus:x:102:104::/var/run/dbus:/bin/false
последнее значение – это оболочка или команда, которая запускается в случае успешного входа. Сейчас это «/bin/false».
Если войти в учетную запись messagebus как root-пользователь, ничего не произойдет, так как переключиться на этого пользователя не получится:
Попробуйте переключиться на пользователя sshd:
sudo su sshd
This account is currently not available.
Это уведомление появилось потому, что оболочка пользователя sshd помещена в «/usr/sbin/nologin».
less /etc/passwd | grep sshd
sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin
Итак, как же ограничить вход пользователей с помощью этих методов?
Нужно использовать инструмент «usermod», изменяющий легитимное значение оболочки фиктивным:
sudo usermod -s /usr/sbin/nologin username
Как ограничить вход с помощью /etc/shadow
Другой подобный способ ограничения доступа – использование файла «/etc/shadow». Данный файл содержит хешированные пароли каждого пользователя системы.
Чтобы просмотреть хешированные пароли, введите:
sudo less /etc/shadow
root:$6$r79Dod3Y$3hi3QklpGEQMxwQGEss4ueNNPkoUrqUe3SwyAacaxl.Lmgq1r9i4mTblV1z6NfKMNXH1Cpnq.4iKhOiQd7Riy1:15953:0:99999:7.
daemon:*:15455:0:99999:7.
bin:*:15455:0:99999:7.
sys:*:15455:0:99999:7.
sync:*:15455:0:99999:7.
games:*:15455:0:99999:7.
man:*:15455:0:99999:7.
. . .
Второе поле (которое начинается с «$6$r79Dod3Y#3…» в первой строке) содержит хешированное значение пароля.
Как можно видеть, учетные записи системы вместо сложного хешированного значения имеют звездочку (*). Учетным записям со звездочкой во втором поле пароль не был установлен и они не могут пройти регистрацию при помощи пароля.
Значение пароля можно деактивировать (сделав его, по сути равным значению «*»), установив перед хешированным значением восклицательный знак (!).
Два инструмента могут заблокировать указанную учетную запись.
Команда passwd может быть заблокирована с помощью флага «-l» и разблокирована флагом «-u»:
sudo passwd -l username
sudo less /etc/shadow | grep username
username:!$6$vpNJ3oFe$5GSh2aU2BDcpdjvQeNFzh0zTgyRUl26x4dn77mFE/vaoXwd19m7okX44jO8TWaVqNRL8vUVTAcZVmgUT8dR.4.:15953:0:99999:7.
Как видно, хешированный пароль сохранился, но стал недействительным благодаря символу ! перед ним.
Учетная запись может быть разблокирована при помощи:
Подобные операции можно выполнить при помощи команды «usermod», которая использует флаги «-L» и «-U» для блокировки и разблокировки соответственно.
sudo usermod -L username
sudo usermod -U username
Примечание: данные методы могут заблокировать доступ только учетным записям на основе пароля, пользователи без пароля (к примеру, ssh-ключи) по-прежнему могут войти в систему.Рассмотрите возможность использования других методов блокировки таких учетных записей.
Как ограничить вход с помощью /etc/nologin
В экстренных ситуациях бывает необходимо запретить вход всем аккаунтам, кроме root.
Это может случиться из-за углубленного технического обслуживания, или потому, что одна или несколько учетных записей были взломаны.
В любом случае, это легко сделать, создав файл «/etc/nologin»:
Это действие блокирует вход любого пользователя, не имеющего привилегий root.
Пустой файл просто сбрасывает пользователей обратно в локальную оболочку без объяснения причин.
Дело в том, что пользователю просто возвращается содержимое файла. Если добавить в файл сообщение, то пользователи получат объяснение ошибки входа:
sudo sh -c ‘echo «Planned maintenance. Log in capabilities will be restored at 1545 UTC» > /etc/nologin’
Попробуйте войти в систему с помощью пароля, тогда будет выведено установленное сообщение:
ssh user@host
user@host’s password:
Planned maintenance. Log in capabilities will be restored at 1545 UTC
Connection closed by host
Root-пользователь по-прежнему может войти в систему. Чтобы отменить ограничения входа, просто удалите файл «/etc/nologin»:
Итоги
Идентификация пользователей в Linux – достаточно гибкая область управления системой, так как одни и те же задания можно выполнить при помощи различных простых инструментов.
Как заблокировать или отключить обычные входы пользователей в Linux
Как системный администратор, вы неизбежно будете выполнять плановое техническое обслуживание системы в тот или иной момент. Несколько раз ваша система также может столкнуться с некоторыми проблемами, и вам придется отключить ее, чтобы устранить проблему (проблемы). Как бы то ни было, рекомендуется запретить пользователям без полномочий root (обычным) подключаться к системе.
В этой статье мы опишем, как заблокировать вход пользователей без полномочий root с помощью файла /etc/nologin, а также оболочки nologin в Linux. Мы рассмотрим, как установить сообщение, объясняющее пользователям, что на самом деле происходит.
Как заблокировать вход пользователей в систему с помощью файла /etc/nologin
Основная функция файла /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 .
Теперь вы можете проверить, все ли работает; как вы можете видеть на снимке экрана ниже, обычный пользователь tecmint не может войти в систему.
Как заблокировать вход пользователей в систему с помощью оболочки nologin
Этот метод работает немного по-другому: он только блокирует доступ пользователя к оболочке. Но он или она может войти в систему с помощью таких программ, как ftp, которым не обязательно требуется оболочка для подключения пользователя к системе.
Кроме того, это может позволить вам заблокировать доступ к оболочке для определенных пользователей в особых сценариях.
В RHEL/CentOS/Fedora
Просто используйте команду chsh (change shell), чтобы изменить оболочку пользователя в файле /etc/passwd с чего-то вроде /bin/bash. или /bin/sh на /sbin/nologin , что означает отказ от входа в систему.
# chsh -s /bin/nologin tecmint
На Дебиан/Убунту
Здесь вы должны использовать файл /bin/false. Приведенная ниже команда изменяет оболочку пользователя tecmint на /bin/false , что означает ничего не делать (после того, как пользователь предоставит учетные данные для входа):
$ sudo chsh -s /bin/false tecmint
Вы также можете прочитать следующие статьи по теме.
- Как включить и отключить корневой вход в Ubuntu
- Сброс/восстановление забытого пароля учетной записи пользователя root в RHEL/CentOS 7
- Как ограничить пользователей SFTP домашними каталогами с помощью chroot Jail
- Как устанавливать и сбрасывать локальные, пользовательские и общесистемные переменные среды в Linux
Это пока все! Если у вас есть какие-либо вопросы или дополнительные идеи, которыми можно поделиться по этой теме, воспользуйтесь формой комментариев ниже.