Получение root в Linux: безопасные способы и настройка

Команда apt update завершилась ошибкой «Permission denied» или «Are you root?» — значит, текущая сессия работает от обычного пользователя, а для управления системой требуются права суперпользователя. Получение root в Linux — это штатная, предусмотренная системой процедура, но способы отличаются в зависимости от дистрибутива: в Ubuntu учётная запись root по умолчанию заблокирована, а в Debian или Arch она может быть активна с самой установки.

В этом материале разберём рабочие методы: временное повышение привилегий через sudo, переключение в root через su, разблокировку учётной записи и настройку файла sudoers. Отдельно остановимся на рисках — постоянная работа под root остаётся одной из главных причин случайных повреждений системы.

Что такое root и почему его ограничивают

Root — встроенная учётная запись с идентификатором UID 0, которой доступны любые операции: изменение системных файлов, установка пакетов, управление пользователями, монтирование дисков. Ядро Linux не накладывает на этот аккаунт никаких ограничений, поэтому одна ошибочная команда способна удалить всю систему целиком.

Именно поэтому современные дистрибутивы по-разному подходят к доступу. Ubuntu и производные (Linux Mint, Pop!_OS) блокируют пароль root при установке и предлагают работать через sudo. Debian при установке позволяет задать пароль root отдельно. Fedora в свежих версиях по умолчанию делает первого пользователя администратором через sudo.

Способ 1. Временные права через sudo

Самый безопасный и рекомендуемый метод — префикс sudo перед командой. Система запросит пароль вашего пользователя (не root) и выполнит одну команду с повышенными привилегиями. Все действия при этом логируются, что упрощает аудит.

sudo apt update

sudo systemctl restart ssh

Если нужно выполнить серию команд подряд, откройте root-оболочку через sudo -i (имитация полного входа root) или sudo -s (оболочка с вашими переменными окружения). Выйти из такой сессии можно командой exit.

⚠️ Внимание: если sudo отвечает «user is not in the sudoers file», вашей учётной записи не выданы права администратора. Добавить их может только существующий администратор или root — самостоятельно «пробить» доступ штатными средствами нельзя.

Способ 2. Переключение через su

Команда su (switch user) полностью переключает сессию на другого пользователя. Вариант su - загружает окружение root как при обычном входе. В отличие от sudo, здесь запрашивается пароль root, а не ваш собственный.

su -

введите пароль root

Метод работает только если у root задан пароль. В Ubuntu по умолчанию пароля нет, поэтому su вернёт ошибку аутентификации — это не сбой, а штатное поведение заблокированной учётной записи.

  • 🔑 sudo — пароль вашего пользователя, логирование команд, гибкая настройка.
  • 🔄 su - — пароль root, полная смена сессии, минимум контроля.
  • 🛡️ sudo -i — компромисс: root-оболочка без знания пароля root.
📊 Каким способом вы обычно получаете root-права?
sudo перед командой
sudo -i / sudo -s
su с паролем root
Постоянно работаю под root

Способ 3. Разблокировка учётной записи root в Ubuntu

Если требуется классический вход под root (например, для консоли восстановления), задайте пароль командой sudo passwd root. Система дважды попросит ввести новый пароль, после чего su - начнёт работать.

sudo passwd root

New password: ...

Retype new password: ...

passwd: password updated successfully

Обратная операция — блокировка — выполняется командой sudo passwd -l root. Учтите, что активный root с слабым паролем — частая цель брутфорс-атак по SSH, поэтому на серверах с открытым 22-м портом разблокировку делать не стоит.

☑️ Безопасная разблокировка root

Выполнено: 0 / 4

Настройка прав через sudoers

Файл /etc/sudoers определяет, кто и что может запускать через sudo. Редактировать его нужно только командой visudo — она проверяет синтаксис перед сохранением и не даст заблокировать себе доступ из-за опечатки. Прямое редактирование в nano или vim может привести к полной потере sudo-доступа.

Чтобы выдать пользователю полные права, добавьте его в группу администраторов. Название группы зависит от дистрибутива: в Debian/Ubuntu это sudo, в Fedora/RHEL/Archwheel.

usermod -aG sudo username    # Debian, Ubuntu

usermod -aG wheel username # Fedora, RHEL, Arch

После добавления в группу нужно завершить сеанс и войти снова — членство в группах применяется при новом логине. Проверить результат можно командой id username или попыткой выполнить sudo -v.

Сравнение способов получения root

СпособЧей парольДлительностьКогда использовать
sudo командаВашОдна командаПовседневное администрирование
sudo -iВашСессия оболочкиСерия команд подряд
su -RootСессия оболочкиДистрибутивы с активным root
Разблокировка rootRootПостоянноКонсоль восстановления, особые сценарии

Типичные ошибки и риски

Главная опасность — привычка постоянно работать под root «чтобы не мешало». В такой сессии любая опечатка вроде пробела в rm -rf / tmp выполняется без единого предупреждения. Второй риск — запуск графических приложений и скриптов из интернета с sudo без проверки содержимого.

⚠️ Внимание: команда rm -rf / или rm -rf /, выполненная от root, безвозвратно удаляет систему. Современные версии coreutils защищают корень флагом --preserve-root, но вариант с / или --no-preserve-root эту защиту обходит. Перед любым удалением от root трижды проверяйте путь.
  • 🚫 Не запускайте браузер, мессенджеры и файловый менеджер от root.
  • 📜 Не выполняйте curl ... | sudo bash без чтения скрипта.
  • 🔐 Не разрешайте SSH-вход root по паролю на публичных серверах.
  • 💾 Перед правкой sudoers держите открытую root-сессию как запасной вариант.
Что делать, если sudo сломан из-за ошибки в sudoers

Перезагрузитесь в режим восстановления (recovery mode) через меню загрузчика, либо загрузитесь с LiveUSB, примонтируйте корневой раздел и исправьте файл /etc/sudoers вручную. Если есть активный пароль root — достаточно войти через su и запустить visudo повторно.

Частые вопросы

Почему su пишет «Authentication failure», хотя пароль верный?

Вероятная причина — вы вводите пароль root, который не задан (типично для Ubuntu). Используйте sudo -i вместо su либо задайте пароль root командой sudo passwd root.

Как проверить, есть ли у меня права sudo?

Выполните sudo -v — если система запросила пароль и приняла его, права есть. Также посмотрите членство в группах командой groups: наличие sudo или wheel указывает на административные права.

Опасно ли постоянно работать под root?

Да. Под root любая программа получает полный контроль над системой, а ошибки в командах необратимы. Безопасная практика — обычный пользователь плюс sudo для отдельных административных задач.

Как забрать права root у пользователя обратно?

Удалите его из административной группы: gpasswd -d username sudo (или wheel). Если для пользователя создавались отдельные строки в sudoers, уберите их через visudo.

Чем sudo -i отличается от sudo -s?

sudo -i имитирует полноценный вход root: загружаются его переменные окружения и домашний каталог /root. sudo -s открывает оболочку с сохранением части вашего окружения. Для администрирования предпочтительнее sudo -i.