Введение
Забытый пароль от учётной записи или пользователя root — распространённая ситуация, особенно если системой пользуются редко или менеджер паролей временно недоступен. В Linux учётные данные не хранятся в открытом виде, а защищены хешированием в файле /etc/shadow. Сбросить их можно без переустановки ОС, используя возможности загрузчика GRUB. Этот метод позволяет получить прямой доступ к корневой консоли и безопасно изменить пароль, сохранив все данные и настройки.
Требования и подготовка
Перед началом убедитесь, что у вас есть физический доступ к машине или к виртуальной консоли (KVM/IPMI). Метод требует знания имени пользователя, пароль которого нужно сбросить. Если вы не помните и его, после входа в консоль восстановления выполните cat /etc/passwd, чтобы увидеть список всех учётных записей.
⚠️ Важно: Метод работает на стандартных незашифрованных разделах. Если при установке системы применялось шифрование диска (LUKS), загрузчик всё равно запросит пароль расшифровки. После его ввода доступ к редактированию параметров GRUB откроется.
Шаг 1: Перехват управления загрузкой
Перезагрузите систему. Сразу после инициализации BIOS/UEFI начинайте быстро нажимать и удерживать клавишу Shift (для BIOS/CSM) или многократно нажимайте Esc (для UEFI), пока не появится меню GRUB. Если система загружается автоматом, используйте Ctrl + Alt + Del или жёсткое выключение для повторного вызова меню.
Шаг 2: Редактирование параметров ядра
В меню GRUB с помощью стрелок выделите первый пункт (обычно называется Ubuntu, Debian GNU/Linux или Linux). Нажмите клавишу e. Откроется встроенный текстовый редактор параметров загрузки.
Найдите строку, которая начинается с linux или linuxefi. Она содержит путь к ядру и параметры монтирования корня. Обычно она выглядит так:
linux /boot/vmlinuz-5.15.0-91-generic root=UUID=a1b2c3d4-... ro quiet splash $vt_handoff
Шаг 3: Запуск в режиме восстановления
В найденной строке замените параметр ro (read-only) на rw (read-write). Удалите quiet splash для отображения системных логов и добавьте в самый конец строки: init=/bin/bash.
Итоговая конфигурация должна выглядеть примерно так:
linux /boot/vmlinuz-... root=UUID=... rw init=/bin/bash $vt_handoff
Нажмите Ctrl + X или F10, чтобы продолжить загрузку. Система пропустит стандартный запуск systemd и всех фоновых сервисов, сразу предоставив вам консоль с правами суперпользователя.
Шаг 4: Изменение пароля
В открывшемся терминале выполните команду для смены пароля. Укажите логин пользователя, доступ которому нужно восстановить:
passwd ваш_логин
Если необходимо сбросить именно пароль root, выполните:
passwd root
Система запросит новый пароль дважды. Символы при вводе не отображаются — это стандартная мера безопасности.
💡 Совет: Для дистрибутивов на базе RHEL, Rocky Linux или AlmaLinux с включённым SELinux добавьте перед перезагрузкой команду
touch /.autorelabel. Это заставит систему корректно пересоздать контексты безопасности при следующем старте.
Шаг 5: Корректная перезагрузка
Не выключайте питание аппаратной кнопкой. Для безопасного завершения работы и возврата в стандартный режим загрузки выполните:
exec /sbin/init
# или
reboot -f
После перезагрузки войдите в систему с новым паролем. Откройте терминал и проверьте работоспособность привилегий командой sudo -l. Если отобразится список разрешённых операций, восстановление прошло успешно.
Возможные проблемы
Ошибка Authentication token manipulation error. Она возникает, когда файловая система смонтирована только для чтения, несмотря на параметр rw. Выполните принудительное перемонтирование: mount -o remount,rw /, после чего повторите вызов passwd.
Система игнорирует init=/bin/bash. Некоторые современные сборки UEFI или дистрибутивы с Secure Boot могут блокировать передачу нестандартных параметров. Попробуйте загрузиться через пункт Advanced options → Recovery mode → root Drop to root shell prompt в меню GRUB.
Пароль отклоняется из-за политик PAM. В корпоративных сборках может действовать модуль pam_pwquality, требующий сложных паролей. Если система отклоняет ввод, выберите комбинацию из заглавных букв, цифр и символов, либо временно закомментируйте строку password requisite pam_pwquality.so в /etc/pam.d/common-password.