Как сбросить пароль Linux, если стандартные методы не работают (SELinux + Read-only)

catbot
15.01.2026 21:52
4 просмотров

Стандартные инструкции с YouTube не всегда помогают, особенно когда имеешь дело со сложными конфигурациями. Статей по теме не нашлось, а стандартный вход через init=/bin/sh приводил либо к зависанию системы при попытке загрузки (exec init=/sbin/init), либо к ошибкам в графическом интерфейсе в духе "Извините, но сейчас это невозможно сделать".

Потратив 2 часа на эксперименты, я нашел рабочий алгоритм. Проблема крылась в SELinux и правах доступа, которые блокировали изменение пароля, выдавая ошибку Authentication token manipulation error.

Ниже - пошаговая инструкция для "тяжелых" случаев.

Предыстория: Вы забыли все пароли, включая root

Симптомы проблемы

  • Вы сбросили пароль через passwd, но система выдает Authentication token manipulation error.
  • Файловая система находится в режиме "Только чтение" (Read-only).
  • При попытке входа в GUI вы видите ошибку о недоступности входа или пароль не подходит.

Инструкция по восстановлению

Шаг 1. Вход в режим редактирования загрузки

  1. Перезагрузите компьютер.
  2. Как только появится меню загрузки GRUB (черный экран со списком систем), быстро нажмите клавишу e (Edit).
  3. Найдите строку, которая начинается с linux, linux16 или linuxefi.
  4. В конце этой строки (через пробел) допишите:

    init=/bin/sh
  5. Нажмите Ctrl + X (или F10), чтобы загрузиться в консоль.

Шаг 2. Подготовка файловой системы

По умолчанию диск смонтирован в режиме Read-only, поэтому изменения не сохранятся. Исправим это:

mount -o remount,rw /

Проверка (должно быть rw в строке вашего диска):

mount | grep root

Шаг 3. "Ручной взлом" пользователя

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

Этап А: Убираем хеш пароля

Откройте файл теней:

nano /etc/shadow

(Если nano нет, придется использовать vi).

Найдите строку нужного пользователя (например, cdr или root). Строка выглядит примерно так:
cdr:$6$hG7s... (длинный набор символов) ...:18416...

Вам нужно стереть всё, что находится между первым и вторым двоеточием. Должно стать:

cdr::18416...

Сохраните файл (Ctrl+O -> Enter) и выйдите (Ctrl+X).

Этап Б: Отключаем проверку "x" (Обязательно для надежности)

Откройте файл пользователей:

nano /etc/passwd

Найдите строку пользователя: cdr:x:1000:1000...
Удалите букву x после имени.

Должно стать:

cdr::1000:1000...

** Примечание: Если не помните пользователя, делайте это для пользователя root — под ним можно всё.

Сохраните и выйдите. Перезагрузитесь.

Шаг 4. Самый важный шаг (SELinux)

Вы увидите графическую оболочку, но нам нужна текстовая консоль, зайди в неё при помощи Ctrl+Alt+F7 или Ctrl+F7 например.

На большинстве систем:
•     GUI - Ctrl+Alt+F1 или Ctrl+Alt+F2
•     текстовые консоли - Ctrl+Alt+F3-F6

Ctrl+Alt+F7 - это старый Xorg-подход, сейчас не всегда работает.

Именно здесь большинство инструкций терпят неудачу. Поскольку мы редактировали системные файлы (shadow и passwd) вручную через редактор, метки безопасности SELinux сбились. Система думает, что файлы повреждены злоумышленником, и блокирует любые операции с паролями.

Восстановите контекст безопасности командами:

restorecon -v /etc/shadow
restorecon -v /etc/passwd

Шаг 5. Финальная установка пароля

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

passwd имя_пользователя

(Например: passwd cdr)

Введите новый пароль дважды. Вы должны увидеть заветное сообщение:

passwd: all authentication tokens updated successfully

Шаг 6. Перезагрузка

Теперь можно перезагружаться. Введите:

reboot -f

После загрузки вы сможете войти в систему. Ошибка «Извините, в данный момент это не работает» исчезнет, так как мы восстановили права доступа и корректно обновили токен.


P.S. Существуют и другие методы сброса, например, через Live CD или специализированные утилиты вроде Rescatux или SystemRescue. Они позволяют сбросить пароль в пару кликов, но если под рукой нет флешки с инструментами, а доступ к системе нужен "здесь и сейчас" - метод выше работает безотказно.