Сброс пароля root в системе.

Установка, настройка, эксплуатация.
Ответить
Аватара пользователя
root
Site Admin
Сообщения: 501
Зарегистрирован: 15 авг 2026 01:31

Сброс пароля root в системе.

Сообщение root »

Оглавление
Сброс пароля root в системе (GRUB / init)
Введение
Когда забываешь пароль root, зачастую можно восстановить его через режим восстановления, загрузившись с параметром `init=/bin/sh` через меню GRUB. Эта инструкция подходит для Fedora, CentOS и подобных дистрибутивов с GRUB2 и SELinux. Также приведён альтернативный подход для systemd (rescue/recovery), который полезен на современных системах.
Шаги по сбросу пароля
  1. При загрузке системы удерживаем SHIFT (или клавишу Esc, в зависимости от конфигурации), чтобы отобразить меню GRUB.
  2. В меню GRUB нажимаем e — редактирование параметров загрузки ядра.
    • Найди строку, начинающуюся с `linux` или `linux16` / `linuxefi`.
    • В конце этой строки добавь:

    Код: Выделить всё

    init=/bin/sh
    • — При необходимости замени параметр `ro` на `rw`, чтобы не пришлось перемонтировать в дальнейшем (иногда можно сразу добавить `rw`):

    Код: Выделить всё

    linux … rw init=/bin/sh
  3. Нажимаем Ctrl+X или F10, чтобы продолжить загрузку с отредактированными параметрами (они не сохраняются).
  4. После загрузки система, как правило, монтируется как `ro` (только для чтения). Перемонтируй корневую файловую систему:

    Код: Выделить всё

    mount -o rw,remount /
  5. Если на системе активен SELinux, можно временно ослабить контроль (в зависимости от окружения):

    Код: Выделить всё

    setenforce 0  # если доступна утилита setenforce

    (на некоторых дистрибутивах может потребоваться загрузка политик — команда `/sbin/load_policy -i` встречается реже и может отсутствовать).
  6. Теперь можно сменить пароль root:

    Код: Выделить всё

    passwd root
  7. Чтобы “вернуть” процесс загрузки в норму, запусти:

    Код: Выделить всё

    exec /sbin/init
    Это заменит текущий шелл на полноценный init-процесс.
  8. Если политика SELinux не была загружена ранее или были изменены контексты, будет полезно создать файл автолейблинга:

    Код: Выделить всё

    touch /.autorelabel
    При следующем запуске система пересчитает метки.

Альтернатива (systemd)
Вместо `init=/bin/sh` можно в GRUB добавить параметр для перехода в rescue/recovery режим systemd:

Код: Выделить всё

systemd.unit=rescue.target
Это загрузит минимальный режим systemd, где проще работать с systemctl и passwd. На некоторых системах удобнее и безопаснее.

Если корневой раздел зашифрован (LUKS)
Если система установлена с полным шифрованием диска (LUKS/LVM-on-LUKS), перед доступом к `/` потребуется расшифровать раздел вручную.
После входа в GRUB и добавления параметра `init=/bin/sh`, при загрузке ядро остановится и запросит пароль для разблокировки устройства.
Пример команды (если загрузка вручную через initramfs):

Код: Выделить всё

cryptsetup luksOpen /dev/sda2 cryptroot
vgchange -ay
mount /dev/mapper/vg-root /
После этого можно выполнить обычные шаги по сбросу пароля.
Важно: без ключа LUKS расшифровать раздел невозможно — ни GRUB, ни init не помогут, потому что данные физически зашифрованы.

Важные замечания и ограничения
  • Параметры, добавленные в GRUB через `e`, не сохраняются навсегда — это временно, на одну загрузку.
  • Если дистрибутив использует более сложный механизм защиты (например, пароль GRUB, шифрование root/LUKS), этот метод может не сработать. При зашифрованном разделе нужно знать пароль шифрования.
  • В системах с SELinux или AppArmor может потребоваться пересчёт меток или дополнительная работа с контекстами; после вмешательств проверь целостность меток.
  • Метод подходит, если у тебя физический или консольный доступ к машине. В облачных средах или на VPS — загрузчик и доступ могут быть ограничены (console/serial/bootloader провайдера).
  • После успешного восстановления стоит проверить целостность `/etc/shadow`, `/etc/passwd` и убедиться, что root имеет нужные права и оболочку.

Заключение
Этот способ — быстрый “аварийный” метод сброса root-пароля через GRUB и init.
На современных системах он может быть ограничен безопасностью (пароль GRUB, шифрование, защита загрузчика), но во многих случаях выручает.
Главное: действуй аккуратно и убедись, что ты знаешь, на каком диске и разделе происходят изменения.
Ответить