Как сбросить пароль root в Linux через GRUB (Single User Mode) для чайников
Что делать, если пароль суперпользователя root утерян?
При утере пароля root или блокировке единственного пользователя с правами sudo стандартный вход в систему становится невозможным. Однако, имея прямой физический доступ к серверу или доступ через консоль VNC / KVM в панели хостинга, пароль можно сбросить за 2 минуты через загрузчик GRUB.
Когда применяется сброс через GRUB:
| Ситуация | Сообщение системы | Решение |
|---|---|---|
| Забыт пароль root | «Authentication failure» при попытке su - или входе в консоль. | Перехват загрузки ядра через параметр init=/bin/bash. |
| Сломаны права sudoers | «alex is not in the sudoers file. This incident will be reported». | Загрузка в режиме восстановления (Recovery Mode) и правка группы пользователя. |
| Сервер взломан | Пароль изменен вредоносным скриптом. | Сброс пароля и проверка автозагрузки в однопользовательском режиме. |
Пошаговый процесс сброса пароля root (Ubuntu / Debian / Linux Mint)
- Шаг 1. Вход в меню загрузчика GRUB:
Перезагрузите сервер. В момент самого начала старта системы удерживайте нажатой клавишу Shift (на некоторых ПК клавишу Esc), пока не появится синее меню GRUB со списком ядер.
- Шаг 2. Редактирование параметров загрузки ядра:
- Выберите верхнюю строчку с вашей ОС и нажмите клавишу «e» на клавиатуре (Edit).
- Стрелками вниз найдите длинную строку, начинающуюся со слова
linux(илиlinux16/linux /boot/...). - Перейдите в самый конец этой строки. Найдите параметры
ro quiet splashи замените их на следующий текст:
rw init=/bin/bash - Шаг 3. Загрузка в командную оболочку:
Нажмите комбинацию клавиш Ctrl + X или F10 для запуска системы с новыми параметрами. Система загрузится без запроса паролей напрямую в корневой терминал
root@(none):/#с правами записи на диск. - Шаг 4. Установка нового пароля:
# Задаем новый пароль для root: passwd root # Если нужно сменить пароль обычному пользователю (например, user): passwd user # Обязательно сбрасываем кэш диска на накопитель: sync - Шаг 5. Перезагрузка сервера:
Принудительно перезагрузите сервер командой:
reboot -f
Для систем CentOS / RHEL / Fedora (SELinux): В строке ядра добавьте rd.break, нажмите Ctrl+X. В консоли введите: mount -o remount,rw /sysroot, затем chroot /sysroot, смените пароль командой passwd, выполните touch /.autorelabel и введите exit дважды.
Частые вопросы (FAQ)
Сотрутся ли мои сайты, базы данных или файлы после такого сброса?
Нет! Сброс пароля через GRUB абсолютно безопасен для информации. Все файлы, настройки и базы данных остаются в исходном состоянии.
Что делать, если при вводе passwd выдает 'Authentication token manipulation error'?
Это означает, что корневой диск смонтирован только для чтения. Выполните команду перемонтирования диска на запись: `mount -o remount,rw /` и повторите смену пароля.
Почему при наборе нового пароля в консоли ничего не отображается?
В Linux в целях безопасности при вводе паролей не отображаются даже звездочки. Просто наберите пароль вслепую и нажмите Enter.
Как защитить сервер от несанкционированного сброса пароля через GRUB?
Установите пароль на сам загрузчик GRUB (утилита `grub-mkpasswd-pbkdf2`) и заблокируйте BIOS/UEFI паролем, чтобы злоумышленник не мог менять параметры загрузки.