Сброс / Восстановление root пароля в Linux
Проверено
OracleLinux 7
Ubuntu 20.04
Сброс пароля может пригодиться, например, если ОС загружается в rescue режиме, а пароля от root'a никто не знает.
Способ №1
Во время загрузки, в меню загрузчика GRUB указать нужные параметры ядра.
В меню GRUB выбрать актуальный вариант (как правило он самый первый) и войти в режим редактирования нажатием клавиши E
Таймер времени для отображения меню может быть выставлен всего на 1 секунду или даже 0, а может и вообще быть скрыто (просто черный экран), поэтому меню легко пропустит.
Попробуйте в следующий раз во время загрузки, нажимать клавиши ↑,↓,Esc.
Есть вариант зажать Shift, но пишут, что работает только с BIOS.
If this option is set to ‘countdown’ or ‘hidden’, then, before displaying the menu, GRUB will wait for the timeout set by ‘GRUB_TIMEOUT’ to expire. If ESC or F4 are pressed, or SHIFT is held down during that time, it will display the menu and wait for input. If a hotkey associated with a menu entry is pressed, it will boot the associated menu entry immediately. If the timeout expires before either of these happens, it will boot the default entry. In the ‘countdown’ case, it will show a one-line indication of the remaining time.
Или установить параметры
/etc/default/grub
... GRUB_TIMEOUT_STYLE=menu GRUB_TIMEOUT=5 ...
sudo update-grub
В разных дистрибутивов есть свои особенности, но общий план действий:
- поменять параметры загрузки ядра
- указать командную sh или bash оболочку в качестве init процесса
- монтировать корневую файловую систему сразу в режим rw
- перейти в корень системы, т.е. при необходимости выполнить chroot
- сбросить пароль через утилиту passwd
OracleLinux / CentOS / RHEL
Заменить ro на rw init=/sysroot/bin/sh и нажать Ctrl+X для загрузки.
Сейчас мы оказались в загрузочном образе initramfs, где корень нашей системы /dev/mapper/ol-root примонтирован в /sysroot
# chroot в корень нашей системы chroot /sysroot # сбросить пароль passwd # выйти из chroot exit # перезагрузка reboot
Ubuntu / Debian
Заменить ro quiet splash $vt_handoff на rw init=/bin/bash и нажать Ctrl+X для загрузки.
Мы оказываемся прямо в корне нашей системы.
/dev/nvme0n1p2 on / type ext4 (rw,realtime)
# сбросить пароль passwd # перезагрузка reboot -f
Способ №2
Загрузка с любого LiveCD.
После загрузки:
- примонтировать корневой раздел системы
- сделать chroot
- сбросить пароль командой passwd
Обсуждение