Всем привет!!

Стоит внести небольшое предисловие, что пароль от учетки забыл не я, а мой товарищ, но я помог ему восстановить доступ.

Как все было?

У моего друга, назовем его Максим, есть домашний сервер, который достался ему от его знакомого. Но проблема была в том, что Максим со временем забыл пароль от своей учетки, потому что около 1.5 лет не пользовался сервером, а знакомый, от которого он получил сервак, тоже не помнит данных от своей учетки.

Что мы имеем?

А мы имеем кирпич. Никто не знает данных от своих учеток, на сервер не пробраться, как-то сбросить пароль не получается.

Как решали?

Тут возможны два варианта:

  1. Если стоит пароль на загрузчик

  2. Если не стоит пароль на загрузчик (решение - дело 2-х минут)

Начну со второго, тут все просто и по пунктам

  1. загружаем в режиме восстановления

  2. Если у вас появилось окно с выбором ОС, то выбираем нужную, которую хотим восстановить и НЕ нажимаем Enter, а нажимаем E и попадаем в редактор, если назвать это коротко.

  3. Если меню GRUB не отображается, нажимайте клавишу Shift (для BIOS) или Esc (для UEFI) сразу после включения сервера.

  4. Далее мы должно поменять параметры загрузки

    1. Найти строку, которая начинается с linux или linux16

    2. В конце строки добавить init=/bin/bash

      1. Строка должна быть похожа примерно на это, но не обязана иметь все параметры, например, в моем случае не было quiet и splash , а вот init=/bin/bash как раз то, что нам и нужно дописать.

      2. linux /boot/vmlinuz-5.15.0-56-generic root=UUID=12345678-1234-1234-1234-123456789abc ro quiet splash init=/bin/bash
        

    3. Ctrl+X или F10, чтобы загрузиться с измененными параметрами

  5. Данные манипуляции должны были загрузить нас в однопользовательском режиме от рута.

  6. Далее просто меняем пароль, как у обычного пользователя, но сначала надо примонтировать корневую файловую систему.

    1. mount -o remount,rw /
      passwd имя_пользователя  # меняем пароль по обычной схеме
      reboot  # после смены пароля перезапускаем сервер и уже загружаемся в обычном режиме и вводим новый пароль

Если у вас все таки стоит пароль на загрузчик, то тут немного сложнее. Нам потребуется загрузочный диск или USB с live-версией Linux . Здесь я расскажу коротко об общих действиях, если вдруг увижу спрос на данную тему, то обязательно распишу подробнее .

  1. Загружаемся с live-носителя

  2. Монтируем диски сервера

  3. Сброс пароля через chroot или редактирование конфигурации GRUB (самая сложная часть тут)

Вполне возможно, что я мог опечататься в командах, так как пишу статью уже спустя 2 недели с того случая, так что рекомендую перепроверять в интернете, но я постарался расписать словами, что мы делаем и что должны получить, чтобы было легче гуглить.

Комментарии (15)


  1. aelaa
    20.01.2025 14:35

    Вариантов там ооочень далеко не 2:

    • а если шифрование раздела?

    • а если не GRUB?

    • а если не bash?

    • а если...

    Статья "чтобы легче гуглить", после которой гуглить придется еще больше.


    1. RaisonCollab Автор
      20.01.2025 14:35

      Вы абсолютно правы, можно найти много "а если", я лишь написал о том, с чем столкнулся сам и какие действия предпринимал ))


  1. SergeyNovak
    20.01.2025 14:35

    Еще стоит открыть для себя live-дистрибутивы, которые можно стартовать от флэшки до дискеты. А вариантов еще миллион. Например, сбить любым способом загрузку со стандартного устройства и тогда, возможно, пойдет загрузка по сети. О таком варианте писал пост:

    https://habr.com/ru/companies/ruvds/articles/774482/


  1. LeshaRB
    20.01.2025 14:35

    Стоит внести небольшое предисловие, что пароль от учетки забыл не я, а мой товарищ, но я помог ему восстановить доступ

    А это для чего?


    1. agkispu
      20.01.2025 14:35

      Ну как же. Классика. Это не для меня, это для друга :)


  1. randomsimplenumber
    20.01.2025 14:35

    Кирпич - это если не грузится. Забыл пароль - совсем другой случай.


  1. Naves
    20.01.2025 14:35

    1) если в опциях загрузки убрать слово ro и вписать rw то не нужно делать лишний remount.

    2) перед reboot рекомендуется вводить sync, бывают нюансы дисковых систем.

    3) У меня знакомый рассказывал, что на каком-то centos-based (там еще АТС asterisk стояла) такой способ принципиально не работал из-за какого-то аналога etckeeper, который возвращал старые пароли после загрузки.


    1. Renatk
      20.01.2025 14:35

      3. Был включен selinux. В статье не рассмотрели данный момент, как не отключая его правильно сбросить пароль.


  1. OverDrop
    20.01.2025 14:35

    А еще проще и правильнее было накатить заново ОС. Потому что никто не знает, что делал знакомый Максима на сервере.


  1. VT100
    20.01.2025 14:35

    На Хабр зарегилась LLM'ка?


    1. outlingo
      20.01.2025 14:35

      Скорей уж SchooLLM’ка


  1. outlingo
    20.01.2025 14:35

    Окирпиченный линукс это когда у вас подписанный зашифрованный загрузочный образ ядра и initrd с паролем на изменение параметров, и расшифровку этих образов загрузчик делает на аппаратном устройстве. Вот это окирпичен. А то что вы описали это одна перезагрузка.

    P.S.: в общем то описанная гипотетическая схема кирпича реализована и может быть включена во всех современных железках. Ну разве что без шифрования загрузчика


  1. CTOMAPBEP
    20.01.2025 14:35

    магия линукса в том что он просто легально чинится, а винду почти всегда придётся переустанавливать.


    1. randomsimplenumber
      20.01.2025 14:35

      Нет никакой магии. Переустановить всегда проще чем починить. К Linux это тоже относится.


  1. nagibat0r
    20.01.2025 14:35

    Читать эту статью - как смотреть, как кто-то гордо заявляет: "Смотрите, я нашёл способ завязывать шнурки!".
    Такие открытия, безусловно, спасут мир... однажды.