Linux запретить локальный вход

Способы ограничения возможности входа пользователей в 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», изменяющий легитимное значение оболочки фиктивным:

Читайте также:  Виртуальные машины centos linux

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.

Читайте также:  Linux who use swap

Пустой файл просто сбрасывает пользователей обратно в локальную оболочку без объяснения причин.

Дело в том, что пользователю просто возвращается содержимое файла. Если добавить в файл сообщение, то пользователи получат объяснение ошибки входа:

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 — отображать сообщение (хранящееся в файле) для пользователей, пытающихся войти в систему в процессе завершения работы.

Как только сообщение отображается пользователю, процедура входа в систему завершается, и пользователь не может войти в систему.

Это можно использовать для блокировки входа пользователя в систему, вручную создав файл следующим образом.

Читайте также:  Команда linux изменить права файлу

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

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

Вы также можете прочитать следующие статьи по теме.

  1. Как включить и отключить корневой вход в Ubuntu
  2. Сброс/восстановление забытого пароля учетной записи пользователя root в RHEL/CentOS 7
  3. Как ограничить пользователей SFTP домашними каталогами с помощью chroot Jail
  4. Как устанавливать и сбрасывать локальные, пользовательские и общесистемные переменные среды в Linux

Это пока все! Если у вас есть какие-либо вопросы или дополнительные идеи, которыми можно поделиться по этой теме, воспользуйтесь формой комментариев ниже.

Источник

Оцените статью
Adblock
detector