- 4 способа отключить доступ к аккаунту Root в Linux
- 1. Изменение командной оболочки пользователя root
- 2. Отключение авторизации root с устройства консоли (TTY)
- 3. Отключение доступа к Root по SSH
- 4. Ограничение доступа root к службам с помощью PAM
- unixforum.org
- Как переключится их пользователя в root и обратно
- Как переключится их пользователя в root и обратно
- Re: Как переключится их пользователя в root и обратно
- Re: Как переключится их пользователя в root и обратно
- Re: Как переключится их пользователя в root и обратно
- Re: Как переключится их пользователя в root и обратно
- Re: Как переключится их пользователя в root и обратно
- Re: Как переключится их пользователя в root и обратно
- Права суперпользователя Linux
- Права суперпользователя в Linux
- Вход под суперпользователем
- Переключение на суперпользователя в терминале
- Получение прав root без переключения
- Графически приложения от имени суперпользователя
- Выводы
4 способа отключить доступ к аккаунту Root в Linux
Оригинал: 4 Ways to Disable Root Account in Linux
Автор: Aaron Kili
Дата публикации: 19 октября 2018 года
Перевод: А. Кривошей
Дата перевода: июль 2019 г.
Учетная запись root является главной учетной записью в Linux и других Unix-подобных операционных системах. Эта учетная запись имеет доступ ко всем командам и файлам в системе с полными разрешениями на чтение, запись и выполнение. Она используется для выполнения любых системных задач: создания/обновления/получения доступа/удаления учетных записей других пользователей, установки/удаления/обновления программных пакетов и многого другого.
Поскольку пользователь root обладает абсолютными полномочиями, любые выполняемые им действия являются критическими для системы. В связи с этим любые ошибки пользователя root могут иметь огромное влияние на нормальную работу системы. Кроме того, эта учетная запись может также подвергаться взлому, либо пользователь может использовать ее ненадлежащим образом, случайно, злонамеренно, либо в результате незнания политик.
Поэтому рекомендуется отключить доступ к аккаунту на вашем сервере Linux, вместо этого создайте административную учетную запись, которая должна быть настроена для получения привилегий пользователя root с помощью команды sudo для выполнения критических задач на сервере.
В этой статье мы расскажем о четырех способах отключения входа в учетную запись root в Linux.
Внимание: Прежде чем заблокировать доступ к учетной записи root, убедитесь, что вы создали административную учетную запись, способную использовать команду sudo для получения привилегий пользователя root, с помощью команды useradd, и задайте для этой учетной записи надежный пароль. Флаг -m означает создание домашнего каталога пользователя, а -c позволяет указать комментарий:
Затем добавьте этого пользователя в соответствующую группу системных администраторов с помощью команды usermod, где ключ -a означает добавление учетной записи пользователя, а -G указывает группу, в которую нужно добавить пользователя (wheel или sudo в зависимости от вашего дистрибутива Linux):
Создав пользователя с правами администратора, переключитесь на эту учетную запись, чтобы заблокировать доступ с правами root.
1. Изменение командной оболочки пользователя root
Самый простой способ отключить вход в систему для пользователя root — это изменить его оболочку с /bin/bash (или любой другой оболочки, разрешающей вход пользователя) на /sbin/nologin в файле /etc/passwd, который вы можете открыть для редактирования, используя любой из ваших любимых текстовых редакторов, как показано ниже.
Сохраните файл и закройте его.
С этого момента, когда пользователь root входит в систему, он /она получит сообщение «This account is currently not available». Это сообщение по умолчанию, но вы можете изменить его и задать собственное сообщение в файле /etc/nologin.txt.
Этот метод эффективен только для программ, которым требуется оболочка для входа пользователя, в противном случае клиенты sudo, ftp и email могут получить доступ к учетной записи root.
2. Отключение авторизации root с устройства консоли (TTY)
Во втором методе используется модуль PAM с именем pam_securetty, который разрешает root-доступ, только если пользователь входит в «защищенный» TTY, как определено в листинге в /etc/securetty.
Приведенный выше файл позволяет вам указать, на каких устройствах TTY разрешен вход в систему пользователю root, очистка этого файла предотвращает вход в систему root на всех устройствах, подключенных к системе.
Чтобы создать пустой файл, выполните:
Этот метод имеет некоторые ограничения, он затрагивает только такие программы, как вход в систему, менеджеры дисплеев (например, gdm, kdm и xdm) и другие сетевые службы, которые запускают TTY. Такие программы, как su, sudo, ssh и другие связанные утилиты openssh будут иметь доступ к учетной записи root.
3. Отключение доступа к Root по SSH
Самый распространенный способ доступа к удаленным серверам или VPS — через SSH, и для блокировки входа пользователя root под ним необходимо отредактировать файл /etc /ssh /sshd_config.
Затем раскомментируйте (если это закомментировано) директиву PermitRootLogin и установите для нее значение no, как показано на скриншоте.
Как только вы закончите, сохраните и закройте файл. Затем перезапустите службу sshd, чтобы применить последние изменения в конфигурации.
Как вы, возможно, уже знаете, этот метод влияет только на набор инструментов openssh, такие программы, как ssh, scp, sftp, будут заблокированы от доступа к учетной записи root.
4. Ограничение доступа root к службам с помощью PAM
Pluggable Authentication Modules (сокращенно PAM) — это централизованный, подключаемый, модульный и гибкий метод аутентификации в системах Linux. PAM через модуль /lib/security/pam_listfile.so обеспечивает большую гибкость в ограничении привилегий определенных учетных записей.
Вышеупомянутый модуль может использоваться для ссылки на список пользователей, которым не разрешено входить через некоторые целевые сервисы, такие как login, ssh и любые программы, поддерживающие PAM.
В этом случае мы хотим отключить доступ пользователя root к системе, ограничив доступ к службам входа и sshd. Сначала откройте и отредактируйте файл для целевой службы в каталоге /etc/pam.d/, как показано ниже.
Затем добавьте приведенную ниже конфигурацию в один из этих файлов (или в оба).
Когда вы закончите, сохраните и закройте каждый файл. Затем создайте простой файл /etc/ssh/deniedusers, который должен содержать по одному элементу в строке и не должен читаться всеми.
Добавьте в него имя root, затем сохраните и закройте его.
Также установите необходимые разрешения на это.
Этот метод влияет только на те программы и службы, которые поддерживают PAM. Вы можете заблокировать root-доступ к системе через ftp и почтовые клиенты и многое другое.
Для получения дополнительной информации обратитесь к соответствующим справочным страницам.
Источник
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
Как переключится их пользователя в root и обратно
Как переключится их пользователя в root и обратно
Сообщение andreas90 » 29.02.2008 03:42
Re: Как переключится их пользователя в root и обратно
Сообщение _beast » 29.02.2008 05:09
Re: Как переключится их пользователя в root и обратно
Сообщение VovanKL » 29.02.2008 11:00
Re: Как переключится их пользователя в root и обратно
Сообщение Палач » 29.02.2008 11:33
Re: Как переключится их пользователя в root и обратно
Сообщение allez » 29.02.2008 11:45
Re: Как переключится их пользователя в root и обратно
Сообщение VovanKL » 29.02.2008 12:21
Re: Как переключится их пользователя в root и обратно
Сообщение andreas90 » 29.02.2008 13:37
Заработало только su -c. А вот sudo не заработало
bash-3.1$ sudo kate xorg.conf
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Password:
andreas1 is not in the sudoers file. This incident will be reported.
Но проблемы больше нет. Теперь я могу работать в режиме user и переключаться в root без перезагрузки компьютера. Спасибо всем!
Источник
Права суперпользователя Linux
Как вы знаете, Linux очень серьезно относится к управлению пользователями и предоставлению им прав на работу с системой. Обычный пользователь может записывать файлы только в свой каталог и каталог /tmp/. Также есть возможность читать некоторые файлы в корневой файловой системе. Но вы не можете устанавливать программы, ведь для этого нужно право на запись, не можете изменять атрибуты файлов, не можете запускать сервисы, не можете читать некоторые файлы логов и еще много чего не можете.
В Linux управлять корневой файловой системой и создавать там файлы имеет право только пользователь root.
В этой статье мы рассмотрим какие программы нужны для того, чтобы получить права root пользователя linux, как они работают, как выполнять программу с правами root от обычного пользователя и как запускать графические программы с правами root. А также выясним что такое sudo в чем разница su или sudo.
Права суперпользователя в Linux
Очень долго перечислять чего не может обычный пользователь Linux, проще сказать на что у него есть право, а именно при стандартной настройке полномочий для файлов в Linux, обычный пользователь может:
- Читать, писать и изменять атрибуты файлов в своем каталоге
- Читать, писать, изменять атрибуты файлов в каталоге /tmp
- Выполнять программы там, где это не запрещено с помощью флага noexec
- Читать файлы, для которых установлен флаг чтения для всех пользователей.
Если же нужно сделать что-то большее нам понадобятся права root пользователя linux. У root есть право делать все в вашей файловой системе независимо от того какие права установлены на файл.
Вход под суперпользователем
Чтобы войти под пользователем root можно переключиться в одну из виртуальных консолей, например, с помощью сочетания клавиш Ctrl+Alt+F1 и затем ввести логин root и пароль root пользователя.
Вы получите полноценное окружение root с возможностью выполнять все действия, но такой способ очень непрактичный, так как вы теряете все преимущества использования графического интерфейса.
Можно поступить полностью противоположным путем, ввести логин root и его пароль в графическом менеджере входа, чтобы окружение рабочего стола работало от имени root, и мы получаем все права root linux, но такой вариант крайне не рекомендованный, и очень опасный, вы можете случайно повредить всю систему. Поэтому этот способ был отключен во многих менеджерах входа.
Переключение на суперпользователя в терминале
Теперь мы подошли к более интересному и практичному. С помощью специальных утилит вы можете переключить текущий эмулятор терминала в окружения суперпользователя и выполнять все следующие команды не от своего имени, а от его, таким образом, дав программе права root linux. Для этого существует утилита su. Вообще говоря, эта утилита позволяет не только переключаться на пользователя root но и на любого другого пользователя, но по умолчанию используется именно root. Рассмотрим ее подробнее. Команда su linux имеет следующий синтаксис:
$ su опции пользователь
Вот ее основные опции:
- -c, —command — выполнить команду
- -g, —group — установить основную группу пользователя (только для root)
- -G —supp-group — дополнительные группы пользователя (только для root)
- -, -l, —login — режим входа, будут очищены и инициализированы с учетом нового пользователя все переменные окружения, а также изменен домашний каталог
- -p, —preserve-environment — сохранить переменные окружения
- -s, —shell — задать оболочку для входа
- —version — отобразить версию программы.
Теперь немного поэкспериментируем, чтобы понять как работает команда su linux.
Сначала выполним su без параметров, но для начала создадим переменную окружения, чтобы проверить как с ними обходится эта команда:
Теперь смотрим что получилось:
whoami
pwd
echo $VAR
echo $PATH
exit
Из этих команд мы видим, что теперь мы пользователь root, но домашней директорией считается директория нашего предыдущего пользователя и наша переменная не сохранилась также изменилась переменная PATH, теперь там добавлен путь /sbin.
Теперь используем вход в режиме логина:
И повторим ту же комбинацию:
whoami
pwd
echo $VAR
echo $PATH
exit
Та же ситуация, только на этот раз изменена ко всему еще и домашняя директория на директорию root. Но мы можем сохранить наши переменные окружения, если это нужно, для этого есть опция -p:
Как видите, наша переменная осталась. Вы также можете переключится на любого другого пользователя. Например:
Более подробно о команде su вы можете почитать в отдельной статье. Получение прав суперпользователя таким способом используется во многих дистрибутивах, например, Debian, OpenSUSE, ArchLInux, Gentoo и т д. Но в Ubuntu, как дистрибутиве для начинающих вход под пользователем root отключен. Это сделано потому, что это тоже не очень безопасно, вы можете забыть что выполняете команду от root и что-то натворить в системе. Поэтому переходим к следующей программе.
Получение прав root без переключения
Чтобы реализовать максимально безопасный интерфейс для работы с правами суперпользователя в Linux была разработана команда sudo. Давайте рассмотрим что такое sudo. Эта команда пишется перед каждой командой, которую нужно выполнить от имени суперпользователя, и для ее выполнения нужно ввести пароль уже не root, а всего лишь вашего пользователя. Так же, как и в предыдущей, в этой утилиты есть свои опции. Сначала рассмотрим синтаксис:
$ sudo опции команда
- -b — выполнять запускаемую утилиту в фоне
- -E — сохранить переменные окружения
- -g — запустить команду от группы
- -H — использовать домашний каталог
- -l — показать список полномочий в sudo для текущего пользователя
- -r — использовать для команды роль SELinux
- -s — использовать оболочку
- -u — запустить команду от имени пользователя, если не задано используется root
- -i — не выполнять команду, а войти в оболочку, эквивалентно su —
Вы можете выполнить те же эксперименты, только для этой команды, чтобы понять как использовать команду sudo. Например:
Использование sudo — это рекомендованный способ выполнять команды от имени суперпользователя в Linux. Так вы не забудете с чем имеете дело и меньше всего рискуете повредить систему. Более подробно о команде sudo читайте здесь. Но остался еще один нерешенный вопрос — как быть с графическими утилитами? Ведь команда sudo их не запускает, а запускать графическую оболочку от имени root небезопасно. Это мы и рассмотрим далее.
Графически приложения от имени суперпользователя
Для запуска графических приложений от имени суперпользователя существуют специальные утилиты. Они сохраняют все необходимые переменные окружения и полномочия. В KDE это команда kdesu, а в Gnome команда gksu.
Просто наберите gksu или kdesu, а затем нужную команду:
Эта команда запустит файловый менеджер KDE с правами суперпользователя. В Gnome это будет выглядеть вот так:
Программа запросит пароль, уже в графическом окне, а потом откроется файловый менеджер.
Выводы
Вот и все. Теперь вы знаете как получить права суперпользователя в Linux, знаете как использовать команду sudo и в чем разница sudo или su. Теперь программы, требующие дополнительных привилегий в системе, не вызовут у вас проблем. Если остались вопросы, пишите в комментариях!
Источник