Получение root-прав в Linux: полное руководство

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

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

Что такое root и зачем нужны эти права

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

Обычный пользователь намеренно лишён этих возможностей — это базовый принцип безопасности Linux. Случайная команда rm -rf в неправильной директории или вредоносный скрипт, запущенный от root, способны полностью уничтожить систему. Поэтому рекомендуемая практика — работать под обычной учёткой и повышать привилегии только для конкретных команд.

Типичные задачи, требующие root-прав:

  • 🔧 Установка и обновление программ через пакетный менеджер
  • ⚙️ Редактирование файлов в системных каталогах /etc, /usr, /boot
  • 🛠️ Управление службами через systemctl
  • 👥 Создание пользователей и изменение их прав
  • 💾 Монтирование дисков и работа с разделами

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

Самый безопасный и распространённый метод — команда sudo (от superuser do). Она выполняет одну команду с правами root, после чего вы остаётесь обычным пользователем. Для этого ваша учётная запись должна входить в группу sudoUbuntu, Debian) или wheelFedora, CentOS, RHEL).

sudo apt update

sudo systemctl restart nginx

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

Проверить, есть ли у вас права sudo, можно командой sudo -l — она покажет список разрешённых действий. Если в ответ приходит сообщение о том, что пользователя нет в файле sudoers, переходите к разделу про добавление прав.

Способ 2: полноценный вход под root через su

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

su -

вводим пароль root

приглашение сменится с $ на #

Ключ - (дефис) загружает окружение root полностью, включая переменные PATH и домашний каталог — без него часть системных команд может не находиться. Признак работы под root: приглашение командной строки заканчивается на # вместо $.

⚠️ Внимание: в Ubuntu и Linux Mint учётная запись root по умолчанию заблокирована — пароль для неё не задан, и su работать не будет. Используйте sudo -i для получения root-оболочки или задайте пароль командой sudo passwd root, если прямой вход под root действительно необходим.

Альтернатива без разблокировки root — команда sudo -i или sudo -s: они открывают полноценную root-сессию, но запрашивают ваш пароль и работают через механизм sudo. Проверить, кем вы являетесь в текущий момент, можно командой whoami.

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

Способ 3: добавление пользователя в sudoers

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

Порядок действий для Debian-подобных систем:

su -

usermod -aG sudo username

для Fedora/CentOS вместо sudo используйте группу wheel:

usermod -aG wheel username

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

☑️ Выдача прав sudo новому пользователю

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

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

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

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

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

Восстановление доступа, если пароль утерян

Потеря пароля пользователя с правами sudo — не приговор, если у вас есть физический доступ к машине. Общий принцип: загрузиться в режиме восстановления (recovery mode) через меню загрузчика GRUB или с Live-USB, получить root-оболочку и сбросить пароль командой passwd username.

Точная процедура зависит от дистрибутива, загрузчика и того, зашифрован ли диск. На системах с полным шифрованием диска без пароля шифрования восстановить доступ таким способом не получится. Перед любыми действиями сверьтесь с официальной документацией вашего дистрибутива — шаги для Ubuntu, Arch и Fedora заметно различаются.

⚠️ Внимание: возможность сбросить пароль через физический доступ — это не «уязвимость», а штатное свойство системы. Если компьютер содержит чувствительные данные, защищайте их шифрованием диска и паролем на BIOS/UEFI, иначе любой, получивший доступ к устройству, сможет стать root.

Типичные ошибки и меры безопасности

Работа с root-правами требует дисциплины. Разберём ошибки, которые чаще всего приводят к поломке системы или проблемам с безопасностью.

  • 🚫 Постоянная работа под root «для удобства» — любая опечатка становится фатальной
  • 📜 Запуск скриптов из интернета через curl ... | sudo bash без чтения содержимого
  • 🔓 Разрешение входа root по SSH с паролем — частая цель брутфорс-атак на серверах
  • ✏️ Правка /etc/sudoers без visudo — риск заблокировать sudo синтаксической ошибкой
  • 📁 Применение chmod 777 «чтобы заработало» вместо корректной настройки владельца файлов

Для серверов действуют дополнительные правила: отключите прямой вход root по SSH (параметр PermitRootLogin no в конфигурации sshd), используйте ключи вместо паролей и оставляйте sudo-доступ только тем учётным записям, которым он реально необходим. Каждое действие через sudo записывается в системный журнал, что позволяет отследить, кто и когда выполнял привилегированные команды.

Почему в Ubuntu нельзя войти под root по умолчанию

Разработчики Ubuntu сознательно блокируют учётную запись root, чтобы вся административная активность шла через sudo и логировалась с привязкой к конкретному пользователю. Это упрощает аудит и снижает риск атак на всем известный логин root. Разблокировать учётку можно командой sudo passwd root, а вернуть блокировку — sudo passwd -l root.

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

Что делать, если sudo пишет «user is not in the sudoers file»?

Ваша учётная запись не входит в группу администраторов. Нужно войти под пользователем, у которого права sudo уже есть (или под root через su), и выполнить usermod -aG sudo имя_пользователя. После этого выйдите из системы и войдите заново.

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

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

Безопасно ли постоянно работать под root?

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

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

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

Можно ли выполнять sudo без ввода пароля?

Да, через настройку NOPASSWD в файле sudoers (редактируется только через visudo). Такой подход оправдан для автоматизированных скриптов и отдельных команд, но для интерактивной работы снижает безопасность — любой процесс от вашего имени сможет получить root без подтверждения.