Поиск по сайту:

4 способа отключить учетную запись root в Linux


Учетная запись root — это основная учетная запись в Linux и других Unix-подобных операционных системах. Эта учетная запись имеет доступ ко всем командам и файлам в системе с полными разрешениями на чтение, запись и выполнение. Он используется для выполнения любых задач в системе; для создания/обновления/доступа/удаления учетных записей других пользователей, установки/удаления/обновления пакетов программного обеспечения и многого другого.

Поскольку пользователь root обладает абсолютными полномочиями, любые выполняемые им действия имеют решающее значение для системы. В связи с этим любые ошибки пользователя root могут иметь огромные последствия для нормальной работы системы. Кроме того, этой учетной записью также можно злоупотреблять, используя ее ненадлежащим или ненадлежащим образом, случайно, злонамеренно или из-за надуманного незнания политик.

Поэтому рекомендуется отключить root-доступ на вашем Linux-сервере, вместо этого создать учетную запись администратора, которую следует настроить для получения привилегий пользователя root с помощью команды sudo для выполнения критических задач на сервере.

В этой статье мы объясним четыре способа отключить вход в систему с учетной записью пользователя root в Linux.

Внимание. Прежде чем заблокировать доступ к учетной записи root, убедитесь, что вы создали учетную запись администратора, позволяющую использовать команду sudo для получения root-прав. привилегии пользователя с помощью команды useradd и дайте этой учетной записи пользователя надежный пароль. Флаг -m означает создание домашнего каталога пользователя, а -c позволяет указать комментарий:

useradd -m -c "Admin User" admin
passwd admin

Затем добавьте этого пользователя в соответствующую группу системных администраторов с помощью команды usermod, где переключатель -a означает добавление учетной записи пользователя, а -G указывает группу для добавления пользователя. in (wheel или sudo в зависимости от вашего дистрибутива Linux):

usermod -aG wheel admin    #CentOS/RHEL
usermod -aG sudo admin     #Debian/Ubuntu 

После того как вы создали пользователя с правами администратора, переключитесь на эту учетную запись, чтобы заблокировать root-доступ.

su admin

1. Измените оболочку root-пользователя.

Самый простой способ отключить вход пользователя root — изменить его оболочку с /bin/bash или /bin/bash (или любую другую оболочку, которая разрешает вход пользователя) на /sbin/nologin в файле /etc/passwd, который вы можете открыть для редактирования с помощью любого из ваших любимых редакторов командной строки, как показано ниже.

  
sudo vim /etc/passwd

Измените строку:

root:x:0:0:root:/root:/bin/bash
to
root:x:0:0:root:/root:/sbin/nologin

Сохраните файл и закройте его.

С этого момента, когда пользователь root войдет в систему, он/она получит сообщение «Эта учетная запись в настоящее время недоступна». Это сообщение по умолчанию, но вы можете измените его и установите собственное сообщение в файле /etc/nologin.txt.

Этот метод эффективен только с программами, которым требуется оболочка для входа в систему, в противном случае клиенты sudo, ftp и email смогут получить доступ к учетной записи root.

2. Отключите root-вход через консольное устройство (TTY).

Второй метод использует модуль PAM под названием pam_securetty, который разрешает root-доступ только в том случае, если пользователь входит в систему с помощью «защищенного» TTY, как определяется списком в /etc/securetty.

Приведенный выше файл позволяет указать, на каких устройствах TTY разрешен вход пользователю root. Очистка этого файла предотвращает вход в систему root на любых устройствах, подключенных к компьютерной системе.

Чтобы создать пустой файл, запустите.

sudo mv /etc/securetty /etc/securetty.orig
sudo touch /etc/securetty
sudo chmod 600 /etc/securetty

Этот метод имеет некоторые ограничения: он влияет только на такие программы, как вход в систему, менеджеры отображения (например, gdm, kdm и xdm) и другие сетевые службы, которые запустить телетайп. Такие программы, как su, sudo, ssh и другие связанные инструменты openssh, будут иметь доступ к учетной записи root.

3. Отключите корневой вход по SSH.

Самый распространенный способ доступа к удаленным серверам или VPS — через SSH, и чтобы заблокировать вход пользователя root под ним, вам необходимо отредактировать файл /etc/ssh/sshd_config.

sudo vim /etc/ssh/sshd_config

Затем раскомментируйте (если она закомментирована) директиву PermitRootLogin и установите для нее значение no, как показано на скриншоте.

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

sudo systemctl restart sshd 
OR
sudo service sshd restart 

Как вы, возможно, уже знаете, этот метод влияет только на набор инструментов openssh, такие программы, как ssh, scp, sftp, будут заблокированы от доступа к учетной записи root.

4. Ограничить корневой доступ к службам через PAM.

Подключаемые модули аутентификации (сокращенно PAM) — это централизованный, подключаемый, модульный и гибкий метод аутентификации в системах Linux. PAM с помощью модуля /lib/security/pam_listfile.so обеспечивает большую гибкость в ограничении привилегий определенных учетных записей.

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

В этом случае мы хотим отключить доступ пользователя root к системе, ограничив доступ к службам входа и sshd. Сначала откройте и отредактируйте файл целевой службы в каталоге /etc/pam.d/, как показано.


sudo vim /etc/pam.d/login
OR
sudo vim /etc/pam.d/sshd

Затем добавьте конфигурацию ниже в оба файла.

auth    required       pam_listfile.so \
        onerr=succeed  item=user  sense=deny  file=/etc/ssh/deniedusers

Когда вы закончите, сохраните и закройте каждый файл. Затем создайте простой файл /etc/ssh/deniedusers, который должен содержать по одному элементу в строке и быть недоступным для чтения всем.

Добавьте в него имя root, затем сохраните и закройте его.

sudo vim /etc/ssh/deniedusers

Также установите необходимые разрешения для этого.

sudo chmod 600 /etc/ssh/deniedusers

Этот метод влияет только на программы и службы, поддерживающие PAM. Вы можете заблокировать root-доступ к системе через FTP-клиенты, почтовые клиенты и многое другое.

Для получения дополнительной информации обратитесь к соответствующим страницам руководства.

man pam_securetty
man sshd_config
man pam

Вот и все! В этой статье мы объяснили четыре способа отключения входа (или учетной записи) пользователя root в Linux. Если у вас есть какие-либо комментарии, предложения или вопросы, не стесняйтесь обращаться к нам через форму обратной связи ниже.