В Ubuntu политика безопасности намеренно ограничивает прямую работу под пользователем root. Любые административные действия по умолчанию выполняются через sudo — это означает, что каждая привилегированная команда требует явного подтверждения. Такой подход снижает риск случайного удаления системных файлов: в Ubuntu нет корзины для команды rm, и восстановить случайно удалённое без бэкапа практически невозможно.
Тем не менее бывают ситуации, когда полноценный вход под root необходим — например, при автоматизации, работе с SSH или при выполнении длинной серии административных команд.
Почему root без пароля по умолчанию
В Ubuntu пользователь root существует, но его пароль не задан. Попытка войти через su - root или по виртуальной консоли (Ctrl+Alt+F2) завершится неудачей — ввести правильный пароль невозможно, так как его нет.
su - root
# Password:
# su: Authentication failure
Это не ошибка конфигурации, а намеренное решение. Для большинства задач это правильная политика. Если нужно — она легко обходится.
Открыть оболочку root в терминале
Два равнозначных способа.
Через sudo su:
sudo su - root
sudo подтверждает права текущего пользователя, затем su переключает оболочку на root. Дефис - означает полное переключение окружения: переменные среды, рабочая директория и профиль загружаются как при настоящем входе root.
Через sudo -i:
sudo -i
Флаг -i (simulate initial login) делает то же самое — открывает оболочку от имени root с полным окружением. Это более современный и рекомендуемый способ.
После входа приглашение изменится с $ на # — признак работы под root:
root@hostname:~#
Для выхода из root-оболочки:
exit
Задать пароль root
Чтобы входить под root через виртуальную консоль, SSH или su без sudo — нужно установить пароль:
sudo passwd root
Система дважды запросит новый пароль. После этого su - root будет работать без sudo:
su - root
# Password: [вводим установленный пароль]
Когда это нужно: подключение по SSH напрямую под root, автоматизированные скрипты, среды без sudo в PATH, работа с VPS где доступен только root-аккаунт.
Вход под root по SSH
После установки пароля вход по SSH под root по умолчанию всё равно может быть заблокирован — это настраивается в /etc/ssh/sshd_config.
Проверить текущее значение:
grep PermitRootLogin /etc/ssh/sshd_config
Разрешить вход root по паролю:
sudo nano /etc/ssh/sshd_config
Найти строку и изменить:
PermitRootLogin yes
Перезапустить SSH:
sudo systemctl restart sshd
Важно для VPS: большинство провайдеров предоставляют серверы с уже включённым
PermitRootLogin yesи root-паролем из панели управления. Для повышения безопасности рекомендуется переключиться на аутентификацию по SSH-ключу и отключить вход по паролю.
Выполнить одну команду от имени root
Если нужна не оболочка, а просто выполнить конкретную команду с правами root:
sudo команда
Это предпочтительный способ для разовых задач — не нужно входить в root-оболочку и помнить потом выйти из неё.
Вход под root в графическом интерфейсе (GDM)
GNOME и GDM блокируют графический вход под root — это ограничение оболочки, а не системы. Запуск GNOME от имени root открывает весь рабочий стол и все приложения с правами суперпользователя, что создаёт серьёзные риски.
Если это всё же необходимо, нужно изменить настройки PAM для GDM:
sudo nano /etc/pam.d/gdm-password
Найти строку и закомментировать символом #:
# auth required pam_succeed_if.so user != root quiet_success
После сохранения в менеджере входа появится возможность кликнуть «Нет в списке», ввести логин root и пароль.
⚠️ Это опасная конфигурация. В режиме root любое запущенное приложение — браузер, почтовый клиент, плагин — имеет полные права над системой. Не использовать на рабочих и продакшн-машинах.
Отключить пароль root (вернуть исходное состояние)
Если пароль root был установлен, но нужно вернуться к стандартной Ubuntu-политике:
sudo passwd -l root
Флаг -l (lock) блокирует аккаунт root — вход по паролю снова становится невозможным, sudo при этом продолжает работать.
Шпаргалка
| Задача | Команда |
|---|---|
| Открыть root-оболочку | sudo -i или sudo su - root |
| Установить пароль root | sudo passwd root |
| Заблокировать пароль root | sudo passwd -l root |
| Разовая команда с правами root | sudo команда |
| Проверить, кто текущий пользователь | whoami |
| Выйти из root-оболочки | exit |
| Разрешить SSH под root | PermitRootLogin yes в /etc/ssh/sshd_config |