Команда с правами обычного пользователя возвращает ошибку 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, после чего вы остаётесь обычным пользователем. Для этого ваша учётная запись должна входить в группу sudo (в Ubuntu, Debian) или wheel (в Fedora, 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.
Способ 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 новому пользователю
Для тонкой настройки — например, разрешения конкретных команд без пароля — редактируется файл /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 без подтверждения.