Как получить права root в Linux: подробная инструкция

Команда завершается ошибкой permission denied или is not in the sudoers file — значит, у текущего пользователя нет прав суперпользователя, и система блокирует выполнение привилегированной операции. Это штатное поведение Linux: права root не выдаются автоматически, их нужно либо запросить через sudo, либо получить через переключение на учётную запись root командой su.

В этой статье разберём все рабочие способы получения прав root: временное повышение привилегий для одной команды, полноценный вход под root, настройку файла sudoers и решение типичных ошибок. Инструкции подходят для большинства дистрибутивов — Ubuntu, Debian, Fedora, CentOS, Arch Linux, — но отдельные детали (например, заблокирован ли root по умолчанию) зависят от конкретной системы.

Что такое права root и когда они нужны

Root — это встроенная учётная запись суперпользователя с неограниченным доступом ко всем файлам, процессам и настройкам системы. Под root можно изменять системные каталоги (/etc, /usr, /boot), устанавливать и удалять пакеты, управлять службами и пользователями, менять сетевые настройки.

Обычный пользователь сознательно лишён этих возможностей — таков базовый принцип безопасности Unix-подобных систем. Повышенные права требуются в ограниченном числе сценариев:

  • 🔧 установка, обновление и удаление программ через пакетный менеджер;
  • ⚙️ редактирование системных конфигурационных файлов;
  • 🛠️ управление службами через systemctl;
  • 👥 создание и удаление пользователей, смена чужих паролей;
  • 💾 монтирование дисков и работа с разделами.
⚠️ Внимание: работа под root снимает все защитные барьеры системы. Одна ошибочная команда вроде rm -rf с неправильным путём способна удалить всю систему без запроса подтверждения. Выполняйте под root только те команды, смысл которых полностью понимаете.

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

Самый безопасный и рекомендуемый метод — команда sudo (от superuser do). Она выполняет одну конкретную команду с правами root, после чего вы остаётесь обычным пользователем. Достаточно дописать sudo перед нужной командой:

sudo apt update

sudo systemctl restart ssh

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

Если нужно выполнить подряд много привилегированных команд, можно открыть root-оболочку через sudo:

sudo -i

После этого приглашение командной строки сменится на # — признак того, что вы работаете от root. Выйти из этого режима можно командой exit.

Способ 2: переключение на root через su

Команда su (substitute user) переключает вас на другую учётную запись — по умолчанию на root. В отличие от sudo, здесь требуется пароль самого root, а не вашего пользователя:

su -

Дефис после su важен: он запускает полноценную сессию с окружением root, включая правильные переменные среды и домашний каталог /root. Без дефиса вы получите права root, но сохраните переменные окружения своего пользователя, что иногда приводит к странному поведению программ.

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

📊 Какой способ получения прав root вы используете чаще?
sudo для отдельных команд
sudo -i для root-сессии
su с паролем root
Пока не получается — есть ошибки

Что делать, если пользователя нет в sudoers

Ошибка user is not in the sudoers file. This incident will be reported означает, что вашей учётной записи не разрешено использовать sudo. Такое бывает, если пользователя создали после установки системы или при установке не добавили его в привилегированную группу.

Исправить это может только тот, у кого уже есть права root. Порядок действий:

☑️ Добавление пользователя в sudoers

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

В системах семейства Debian и Ubuntu привилегированная группа называется sudo, в Fedora, CentOS и RHELwheel. Добавление выполняется командой:

usermod -aG sudo имя_пользователя

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

Тонкая настройка прав через visudo

Файл /etc/sudoers определяет, кому и что разрешено выполнять через sudo. Редактировать его напрямую в обычном текстовом редакторе нельзя — для этого существует специальная утилита visudo, которая проверяет синтаксис перед сохранением и не даст заблокировать себе доступ из-за опечатки:

sudo visudo

Через sudoers можно, например, разрешить пользователю выполнять только конкретные команды или отключить запрос пароля для отдельных операций. Однако правило NOPASSWD снижает безопасность, поэтому применять его стоит осознанно и точечно.

Пример строки в sudoers для запуска одной команды без пароля

username ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx — такая строка разрешает пользователю username перезапускать службу nginx без ввода пароля. Все остальные команды по-прежнему потребуют аутентификации.

⚠️ Внимание: никогда не правьте /etc/sudoers через обычный редактор вроде nano или vim напрямую. Синтаксическая ошибка в этом файле может полностью заблокировать sudo для всех пользователей, и восстанавливать доступ придётся через режим восстановления. Только visudo гарантирует проверку синтаксиса.

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

Каждый метод имеет свою область применения. Сводная таблица поможет выбрать подходящий:

СпособЧей пароль нуженКогда применятьУровень безопасности
sudo командаСвой парольРазовые привилегированные операцииМаксимальный
sudo -iСвой парольСерия административных задачВысокий
su -Пароль rootСистемы, где root разблокированСредний
Постоянный вход под rootПароль rootНе рекомендуетсяНизкий

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

Не получилось с первого раза — разберитесь, какое именно сообщение выдала система. Текст ошибки прямо указывает на причину:

  • 🚫 permission denied — команда запущена без sudo либо нет прав на конкретный файл;
  • 🔑 is not in the sudoers file — пользователя нужно добавить в группу sudo или wheel;
  • su: Authentication failure — неверный пароль root либо учётная запись root заблокирована;
  • 📂 sudo: command not found — пакет sudo не установлен (встречается в минимальных сборках и контейнерах).

Отдельный случай — sudo: command not found. В минимальных установках и Docker-образах sudo может отсутствовать. Решение — войти под root через su и установить пакет через пакетный менеджер (например, apt install sudo в Debian-подобных системах).

⚠️ Внимание: если вы потеряли доступ и к sudo, и к root (например, удалили себя из группы sudoers), восстановление возможно через режим восстановления (recovery mode) или загрузку с Live-USB с последующим chroot в систему. Это более сложная процедура, и её шаги зависят от дистрибутива — сверяйтесь с официальной документацией вашей системы.

Часто задаваемые вопросы

Чем sudo отличается от su?

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

Почему при вводе пароля в терминале не отображаются символы?

Это стандартное поведение терминала Linux — пароль не показывается даже звёздочками, чтобы его нельзя было подсмотреть или определить длину. Просто введите пароль вслепую и нажмите Enter.

Можно ли постоянно работать под root, чтобы не вводить sudo?

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

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

Выполните команду sudo -l — она покажет список разрешённых вам привилегированных действий. Альтернатива — groups: если в выводе есть sudo или wheel, права, скорее всего, настроены.

Как вернуться к обычному пользователю после su или sudo -i?

Введите команду exit или нажмите сочетание клавиш Ctrl+D. Приглашение командной строки сменится с # обратно на $ — это признак работы под обычным пользователем.