Восстановление утраченного пароля root в Linux
Важно: многие дистрибутивы (например, Ubuntu) по умолчанию отключают учётную запись root и используют sudo для административных задач. В таких системах обычно достаточно получить sudo-права и выполнить
sudo -sилиsudo passwd root.
Краткое введение
Этот документ описывает четыре распространённых метода восстановления или сброса пароля root в Linux и даёт практические рекомендации по безопасности и проверке результата. Каждый метод применим в разных ситуациях — от обычного рабочего ноутбука до сервера без доступа к учетной записи с sudo.
Основные варианты:
- Сброс через sudo
- Сброс через GRUB (single-user)
- Сброс через systemd debug shell
- Сброс с помощью Live ISO и chroot
Ниже — пошаговые инструкции, рекомендации, когда метод не сработает, чеклисты и советы по безопасности.
Сброс пароля root через sudo
Когда применять: у вас есть активный обычный пользователь, входящий в группу sudo (или wheel). Это самый простой и безопасный способ.
Проверка принадлежности к sudoers:
groupsЕсли в выводе есть sudo или wheel, можно использовать sudo.
Шаги:
sudo passwd rootСистема запросит новый пароль и подтвердит его. Затем проверьте вход под root:
su -
# или
sudo -iКогда не сработает:
- Нет пользователя с правами sudo.
- Система настроена так, что root отключён и смена пароля не переводит root в активное состояние (редко).
Советы по безопасности:
- После восстановления пароля убедитесь, что вход root по SSH запрещён (см. /etc/ssh/sshd_config: PermitRootLogin no).
- Рассмотрите возможность оставлять root заблокированным и управлять через sudo с журналированием.
Сброс пароля root через GRUB (single-user)
Когда применять: на локальной машине нет sudo-пользователя, но есть физический доступ к загрузчику GRUB.
Шаги общего алгоритма:
- Перезагрузите систему и дождитесь меню GRUB. В разных установках меню появляется автоматически или при удерживании Shift/Esc при загрузке.
- Выберите нужную запись ядра и нажмите E, чтобы редактировать командную строку загрузки.
- Найдите строку, начинающуюся с
linux(она содержит параметры ядра). В этой строке заменитеroнаrwи добавьте в конецinit=/bin/bash. - Загрузитесь с изменёнными параметрами (обычно Ctrl+X или F10).
Пример изменённой строки загрузки (для наглядности):
linux /vmlinuz-... root=/dev/sda1 rw init=/bin/bashПосле загрузки у вас появится однопользовательский shell от root. Перед сменой пароля смонтируйте корневой раздел в режиме чтения-записи:
mount -n -o remount,rw /Сброс пароля:
passwd rootПосле успешной смены пароля перезапустите системный инициализатор:
exec /sbin/init
# или, если init в другом месте
exec /lib/systemd/systemdКогда не сработает:
- GRUB защищён паролем (в корпоративных установках так бывает).
- На некоторых системах с зашифрованным / (LUKS) доступ к корневому файлу невозможен без ввода пароля расшифровки диска.
Важное замечание:
После успешной операции не забудьте удалить любой добавленный параметр init=/bin/bash из конфигурации GRUB, если вы вносили постоянные изменения.
Сброс пароля root через режим отладки systemd
Когда применять: хотите избежать правки строк GRUB при загрузке и у вас есть доступ к редактированию конфигурации GRUB (нужны права sudo).
Шаги:
- Откройте файл конфигурации GRUB для редактирования (требуются sudo-права):
sudo nano /etc/default/grub- Найдите строку с
GRUB_CMDLINE_LINUXи добавьте внутри кавычек параметрsystemd.debug-shell.
Пример:
GRUB_CMDLINE_LINUX="... systemd.debug-shell"- Примените конфигурацию GRUB. В разных дистрибутивах команда отличается:
# Debian/Ubuntu
sudo update-grub
# или
sudo grub-mkconfig -o /boot/grub/grub.cfgПерезагрузите систему. После загрузки нажмите Ctrl+Alt+F9 (TTY9) — должен появиться root-shell от systemd-debug-shell.
Выполните сброс пароля:
passwd root- После завершения обязательно удалите параметр
systemd.debug-shellиз/etc/default/grubи заново выполнитеupdate-grubилиgrub-mkconfig.
Когда не сработает:
- Параметр systemd может быть заблокирован политиками безопасности в этой сборке дистрибутива.
- Опять же, если корневой раздел зашифрован, доступ невозможен без расшифровки.
Сброс пароля root с помощью Live ISO и chroot
Когда применять: у вас нет доступа к текущей системе, но есть загрузочный Live-образ (например, Ubuntu или другой дистрибутив) и физический доступ к машине.
Шаги:
- Создайте загрузочную флешку с Live ISO и загрузитесь с неё. В меню Live выберите «Try Ubuntu» или аналогичный режим «Попробовать без установки».
- Откройте терминал в Live-сессии и получите root-привилегии:
sudo -s- Определите устройство с корневым разделом вашей установленной системы:
sudo fdisk -l
# или
lsblk -f- Смонтируйте корневой раздел в директорию для восстановления:
mkdir -p /mnt/recover
mount /dev/sdXY /mnt/recover
# где /dev/sdXY замените на реальный раздел, например /dev/sda4Если у вас отдельные разделы /boot, /var, /home или используется LVM, смонтируйте и их в соответствующие точки внутри /mnt/recover.
Выполните chroot:
mount --bind /dev /mnt/recover/dev
mount --bind /proc /mnt/recover/proc
mount --bind /sys /mnt/recover/sys
chroot /mnt/recover /bin/bash- Сбросьте пароль:
passwd root- Выйдите из chroot и размонтируйте:
exit
umount /mnt/recover/dev
umount /mnt/recover/proc
umount /mnt/recover/sys
umount /mnt/recover- Перезагрузите систему и загрузитесь с основного диска.
Когда не сработает:
- Если корневой раздел использует шифрование, потребуется расшифровать LUKS перед монтированием.
- Неправильно выбран раздел — всегда перепроверьте
fdisk -lилиlsblk.
Проверка успешности и критерии приёмки
Критерии приёмки:
- Успешный вход под root из локальной консоли:
su -и ввод нового пароля. - Если нужно, успешный вход по SSH как root (только если это требуется и разрешено политикой безопасности).
- При изменениях в GRUB — загрузка без дополнительных параметров и отсутствие нежелательных постоянных параметров в
/etc/default/grub.
Проверочные команды:
su - # ввод нового пароля
id root
# проверка ssh (только если разрешено): ssh root@localhostБыть аккуратным с зашифрованными дисками
Если ваш корневой раздел зашифрован (LUKS), методы, предполагающие доступ к файловой системе без расшифровки (GRUB single-user, systemd debug), не дадут доступа к файлам или смене пароля до момента расшифровки. В таком случае используйте Live ISO и расшифруйте LUKS-контейнер с помощью cryptsetup luksOpen.
Мини-методология восстановления для администратора (SOP)
- Оцените ситуацию: физический доступ, наличие sudo-пользователя, шифрование диска, защита GRUB.
- Если есть sudo-пользователь — используйте
sudo passwd root. - Если нет sudo и диск не зашифрован — используйте GRUB single-user.
- Если GRUB защищён паролем или диск зашифрован — загрузитесь с Live ISO и используйте chroot.
- Сбросьте пароль, проверьте вход, обновите записи GRUB при необходимости, и примените настройки безопасности.
- Документируйте изменения и отзыгните временные привилегии.
Чек-лист для разных ролей
Для пользователя (не root):
- [ ] Проверить, есть ли у меня sudo:
groups. - [ ] Попробовать
sudo passwd root(только при необходимости). - Обратиться к администратору, если нет физического доступа.
Для администратора на месте:
- Определить, используется ли шифрование диска.
- Определить, есть ли пароль GRUB.
- Выбрать метод: sudo, GRUB, systemd debug, Live ISO.
- Выполнить смену пароля и проверить вход.
- Убрать временные изменения в загрузчике и уведомить владельца.
Справочник команд — кратко
# Проверка групп
groups
# Сброс пароля через sudo
sudo passwd root
# Монтирование корня в GRUB single-user
mount -n -o remount,rw /
passwd root
exec /sbin/init
# Редактирование GRUB config
sudo nano /etc/default/grub
sudo update-grub
# или
sudo grub-mkconfig -o /boot/grub/grub.cfg
# Live ISO: определить разделы
sudo fdisk -l
lsblk -f
# Live ISO: монтирование и chroot
mkdir -p /mnt/recover
mount /dev/sdXY /mnt/recover
mount --bind /dev /mnt/recover/dev
mount --bind /proc /mnt/recover/proc
mount --bind /sys /mnt/recover/sys
chroot /mnt/recover /bin/bash
passwd root
exit
umount /mnt/recoverСоветы по безопасности после восстановления
- Запретите удалённый вход для root по SSH: в
/etc/ssh/sshd_configвыставьтеPermitRootLogin noи перезапустите sshd. - Подумайте о политике использования sudo: лучше вести аудит действий через sudo, чем полноценно использовать root.
- Проверьте /var/log/auth.log или systemd-journald на предмет подозрительных входов.
- Если вы использовали Live ISO или внесли временные изменения в загрузчик — верните исходные настройки.
Когда методы не должны применяться (контекст безопасности)
- На серверах в дата-центре без контроля физического доступа никогда не оставляйте возможность легкой смены пароля через GRUB.
- В управляемой корпоративной инфраструктуре всегда следуйте процедурам восстановления, согласованным с политикой безопасности: часто восстановление пароля требует одобрения и действий через центральную систему управления конфигурацией.
Краткий глоссарий (одна строка на термин)
- root — суперпользователь в Unix/Linux с полными привилегиями.
- sudo — утилита для выполнения команд от имени другого пользователя, обычно root.
- GRUB — загрузчик GNU, который предоставляет меню загрузки и параметры ядра.
- chroot — запуск командной оболочки с корнем файловой системы, изменённым на другой путь.
- Live ISO — загрузочный образ ОС, позволяющий работать без установки на диск.
Короткое резюме
- Если есть sudo-пользователь — начните с
sudo passwd root. - Если sudo недоступен, а диск не зашифрован — используйте GRUB single-user.
- Если GRUB защищён или диск зашифрован — загрузитесь с Live ISO и выполните chroot.
- Всегда возвращайте временные изменения конфигурации и применяйте рекомендации по безопасности.
Image credit: Grok via x.ai. All alterations and screenshots by Ramces Red.




Похожие материалы
Как настроить уведомления Ecobee при проблемах с HVAC
Интеграция Bootstrap-шаблона в React App
Подключить образ Macrium Reflect и извлечь файлы
Исправить Video driver crashed в Windows
Включить уведомления автозапуска в Windows 11