
Пароль суперпользователя в Linux обеспечивает контроль над системными настройками, поэтому его потеря быстро блокирует доступ к критическим функциям. Ситуация решаема: большинство дистрибутивов предоставляет механизмы восстановления без переустановки системы. Методы отличаются в зависимости от загрузчика, конфигурации файловой системы и наличия шифрования.
Для систем с GRUB используется изменение параметров загрузки с переходом в однопользовательский режим. Такой подход позволяет получить доступ к оболочке без проверки пароля и выполнить passwd root. На серверах с отключённой локальной консолью требуется работа через live-среду: она даёт возможность примонтировать системный раздел и изменить хеш пароля вручную в файле /etc/shadow.
Если диск зашифрован LUKS, восстановление возможно только при наличии пароля расшифровки, так как загрузка без него невозможна. В корпоративных конфигурациях встречаются ограничения на изменение параметров загрузчика, и в этих условиях применяется доступ по rescue-режиму дистрибутива или средства удалённого управления, позволяющие получить локальную консоль ещё до загрузки ОС.
Каждый способ требует точного выполнения команд, так как ошибка в параметрах монтирования или загрузки способна привести к повреждению системы. Поэтому важно заранее понимать, какие инструменты доступны на конкретном сервере или рабочей станции, и выбирать технику, подходящую под установленный дистрибутив и тип защиты данных.
Сброс пароля через режим восстановления GRUB

На этапе загрузки нажимается клавиша Shift или Esc (в зависимости от дистрибутива), чтобы открыть меню GRUB. В списке выбирается строка с установленным ядром и вызывается редактор параметров с помощью клавиши e.
В открывшемся конфиге находится строка, начинающаяся с linux или linux16. В её конец добавляется параметр init=/bin/bash. После изменения конфигурации выполняется загрузка с новым параметром через Ctrl+X или F10.
Система загружается в однопользовательский режим с оболочкой bash. Корневая файловая система доступна только для чтения, поэтому перед сбросом пароля выполняется команда mount -o remount,rw /. После перемонтирования запускается изменение пароля через passwd root и вводится новый пароль.
Для применения настроек выполняется sync, затем система перезагружается командой exec /sbin/init или reboot -f. После загрузки можно авторизоваться под обновлённым паролем root.
Изменение пароля root через chroot в среде LiveCD

Найдите корневой раздел и при необходимости откройте LUKS/LVM. Проверка разделов: lsblk или fdisk -l. Для LUKS: сначала cryptsetup luksOpen /dev/sdXN cryptroot, затем используйте соответствующий /dev/mapper/cryptroot.
Смонтируйте систему в временную точку монтирования и, при наличии отдельных разделов, смонтируйте их по назначению. Пример базовой последовательности: mount /dev/sdXN /mnt; если есть /boot – mount /dev/sdY1 /mnt/boot; при LVM – предварительно vgchange -ay и затем монтируйте логические тома.
Подготовьте окружение chroot: привяжите устройства и псевдо-файловые системы, чтобы команды внутри работали корректно. Выполните: mount —bind /dev /mnt/dev && mount —bind /proc /mnt/proc && mount —bind /sys /mnt/sys && mount —bind /run /mnt/run. Скопируйте DNS, если потребуется сетевой доступ: cp /etc/resolv.conf /mnt/etc/resolv.conf.
Войдите в окружение: chroot /mnt /bin/bash или для систем с systemd: chroot /mnt /usr/bin/env -i HOME=/root SHELL=/bin/bash /bin/bash. Установите новый пароль для root: passwd root и следуйте подсказкам. Пароль должен быть сложным и не короче 12 символов; можно использовать менеджер паролей.
Если система использует SELinux, восстановите контексты после смены пароля: создайте файл для переустановки меток и выйдите из chroot: touch /.autorelabel. При необходимости восстановите состояние PAM или обновите хэши паролей: pwconv или grpconv.
Выйдите из chroot: exit. Отмонтируйте в обратном порядке и закройте LUKS/LVM: umount -l /mnt/run /mnt/dev /mnt/proc /mnt/sys, затем umount /mnt/boot /mnt. Для LUKS: cryptsetup luksClose cryptroot; для LVM: vgchange -an.
Перезагрузите систему и проверьте вход в систему под root. Если загрузчик или initramfs требуют обновления (например, при изменениях UUID или шифрования), выполните обновление соответствующих конфигураций перед перезагрузкой: внутри chroot update-initramfs -u или dracut —regenerate-all —force, в зависимости от дистрибутива.
Советы и предостережения: делайте снимок конфигураций перед изменениями; при шифровании убедитесь в целостности ключей; не используйте слабые пароли; при управлении удалёнными серверами предпочтительнее восстановление через консоль провайдера, а не через LiveCD.
Восстановление доступа с использованием init=/bin/bash
Загрузка системы с параметром init=/bin/bash позволяет получить однопользовательскую среду без запуска стандартных служб. Для этого в меню GRUB необходимо выбрать нужный пункт, нажать клавишу “e” и изменить строку, начинающуюся с linux или linux16, добавив в её конец параметр init=/bin/bash.
После применения параметра загрузка остановится в оболочке bash с правами root. Файловая система в этот момент доступна только для чтения, поэтому перед изменением пароля требуется выполнить команду mount -o remount,rw /. Это обеспечит корректную запись новых данных в систему.
Смена пароля выполняется через passwd root. После успешного обновления пароля необходимо принудительно синхронизировать данные командой sync и перезагрузить систему с помощью exec /sbin/init или reboot -f. Возврат к обычной загрузке произойдет автоматически, так как параметр init=/bin/bash не сохраняется в конфигурации GRUB.
Метод удобен тем, что не требует внешних носителей и подходит для большинства систем, использующих классическую загрузку через GRUB. Однако доступ к редактированию записи загрузчика должен быть открыт; при наличии пароля GRUB метод будет недоступен без дополнительных действий.
Сброс пароля root через загрузку в однопользовательский режим
Однопользовательский режим загружается без сетевых сервисов и выполняет инициализацию с минимальным набором процессов, что позволяет изменить пароль root без проверки текущих учетных данных. Для входа в этот режим требуется доступ к меню загрузчика GRUB.
В меню GRUB выберите нужную запись ядра и нажмите e для редактирования. Найдите строку, начинающуюся с linux или linux16. В конце строки добавьте параметр single или systemd.unit=rescue.target. Оба варианта переводят систему в состояние с правами суперпользователя на ранней стадии загрузки.
После добавления параметра нажмите Ctrl + X или F10 для запуска ядра с изменёнными параметрами. Система откроет оболочку root без запроса пароля. Если файловая система смонтирована в режиме read-only, выполните команду:
mount -o remount,rw /
Для изменения пароля выполните:
passwd
После задания нового значения обновите метаданные файловой системы командой:
sync
Вернитесь к обычной загрузке с помощью:
reboot
Если в системе включена защита GRUB паролем, вход в редактор загрузки будет заблокирован. В таких случаях потребуется другой метод восстановления, так как однопользовательский режим станет недоступным.
Исправление повреждённого файла shadow для восстановления входа

Повреждённый файл /etc/shadow приводит к невозможности входа под любым пользователем, так как система не может прочитать хэши паролей. Для восстановления работоспособности требуется загрузка с LiveCD или переход в среду восстановления с доступом к файловой системе в режиме записи.
Основные действия:
- Загрузиться с LiveCD или через init=/bin/bash, затем смонтировать корневой раздел:
mount /dev/sdXn /mnt
- Перейти в каталог с системными файлами:
cd /mnt/etc
- Проверить наличие резервных копий:
shadow-– последняя рабочая версия;gshadow-– резерв для групп.
- Сравнить текущий файл и резервную копию:
diff shadow shadow-
Это поможет понять характер повреждения – обрыв строки, неверное количество полей, случайные символы.
- Если структура нарушена частично, восстановить строки вручную. Каждая запись должна содержать 9 полей, разделённых двоеточиями. Пример корректной строки:
root:$6$hash$...:19680:0:99999:7:::
- При полной порче заменить файл резервной копией:
cp shadow- shadow
- Выставить правильные права и владельца:
chmod 600 shadow chown root:root shadow
- При необходимости сбросить пароль root:
chroot /mnt passwd root
После исправления требуется корректно размонтировать раздел:
umount /mnt
Затем выполнить перезагрузку и проверить возможность входа.
Восстановление пароля root в системах с SELinux

В системах с SELinux стандартная процедура сброса пароля root может быть осложнена строгими политиками безопасности. Для корректного восстановления необходимо учитывать контекст безопасности файлов.
Алгоритм действий:
- Загрузиться в однопользовательский режим или через LiveCD с поддержкой SELinux.
- Смонтировать корневой раздел с доступом на запись:
mount -o rw /dev/sdXn /mnt
- Перейти в каталог с системными файлами и проверить SELinux контексты:
cd /mnt/etc ls -Z shadow
Контекст должен быть
system_u:object_r:shadow_t:s0для файлаshadow. - Сбросить пароль root:
chroot /mnt passwd root
- Восстановить правильные контексты SELinux:
restorecon -v /etc/shadow
- Проверить и при необходимости пересобрать контексты для всей системы:
fixfiles -R restore
Важно сохранять целостность политик SELinux, иначе после перезагрузки система может блокировать вход.
Пример проверки и восстановления контекстов для ключевых файлов:
| Файл | Контекст SELinux | Команда восстановления |
|---|---|---|
| /etc/shadow | system_u:object_r:shadow_t:s0 | restorecon -v /etc/shadow |
| /etc/passwd | system_u:object_r:passwd_file_t:s0 | restorecon -v /etc/passwd |
| /etc/gshadow | system_u:object_r:shadow_t:s0 | restorecon -v /etc/gshadow |
После выполнения всех операций необходимо размонтировать раздел и перезагрузить систему для проверки доступа.
Сброс пароля root в системах с LUKS-шифрованием
Для восстановления или сброса пароля root на системах с LUKS-шифрованием требуется сначала получить доступ к зашифрованному корневому разделу. Это достигается через LiveCD или загрузочную флешку с Linux.
После загрузки в Live-среде определите зашифрованный раздел командой lsblk или blkid. Обычно это /dev/sdaX, где X – номер раздела.
Расшифровка раздела выполняется командой:
sudo cryptsetup luksOpen /dev/sdaX decrypted_root
При этом будет запрошен текущий ключ LUKS. Если ключ неизвестен, доступ к данным невозможен без резервных ключей.
После открытия контейнера монтируйте корневую файловую систему:
sudo mount /dev/mapper/decrypted_root /mnt
Затем используйте chroot для работы с системой:
sudo chroot /mnt
Внутри chroot смените пароль root командой:
passwd root
После успешного изменения пароля выйдите из chroot, размонтируйте раздел и закройте LUKS-контейнер:
exit
sudo umount /mnt
sudo cryptsetup luksClose decrypted_root
Для автоматической загрузки после сброса убедитесь, что файлы конфигурации GRUB и initramfs соответствуют текущему состоянию шифрования, особенно если пароль root был связан с initramfs или ключами шифрования.
Вопрос-ответ:
Можно ли сбросить пароль root без доступа к графическому интерфейсу Linux?
Да, доступ к графическому интерфейсу не требуется. Для восстановления пароля root достаточно загрузиться в однопользовательский режим или использовать параметр init=/bin/bash в загрузчике. После этого можно изменить пароль с помощью команды passwd. Такой способ работает даже на минимальной установке Linux без графического окружения.
Как восстановить пароль root на системе с шифрованием LUKS?
На системах с LUKS необходимо сначала расшифровать корневой раздел. Для этого при загрузке вводят ключ или пароль LUKS. После расшифровки можно использовать LiveCD или режим восстановления для изменения пароля root командой passwd. Без расшифровки доступ к файлам системы невозможен, поэтому этот шаг обязателен.
Можно ли восстановить пароль root через редактирование файла /etc/shadow?
Да, это возможно, но требует осторожности. Файл /etc/shadow содержит хэшированные пароли, и любая ошибка может заблокировать доступ к системе. Обычно используют LiveCD, монтируют корневой раздел и заменяют хэш пароля root на хэш нового пароля, сгенерированный заранее. После сохранения изменений и перезагрузки можно войти под новым паролем.
Что делать, если система использует SELinux при восстановлении root?
SELinux может блокировать изменение некоторых файлов и процессов даже для root. При восстановлении пароля через LiveCD или однопользовательский режим рекомендуется временно отключить SELinux, изменив параметр enforcing на permissive. После восстановления пароля можно вернуть SELinux в исходное состояние, чтобы сохранить защиту системы.
Как безопасно использовать chroot для изменения пароля root?
Chroot позволяет работать с файловой системой как с отдельной средой. Для изменения пароля root нужно загрузиться с LiveCD, смонтировать корневой раздел, выполнить chroot /mnt и затем командой passwd задать новый пароль. После этого выходят из chroot и перезагружают систему. Этот метод безопасен, так как изменения затрагивают только файловую систему целевой системы.
Можно ли восстановить пароль root, если я заблокировал систему и не могу войти даже в консоль?
Да, восстановление возможно, но методы зависят от конфигурации системы и уровня защиты. В большинстве дистрибутивов Linux можно загрузиться в однопользовательский режим или через init=/bin/bash, чтобы получить доступ к корневой файловой системе и сменить пароль root. Для зашифрованных систем с LUKS потребуется сначала расшифровать диск с помощью существующего ключа, а затем изменить пароль root. При этом важно соблюдать осторожность, чтобы не нарушить целостность системных файлов и настроек безопасности.
Как изменить пароль root через среду LiveCD, если основной загрузчик не запускается?
Для этого нужно загрузить систему с LiveCD или USB, смонтировать корневой раздел целевой системы и выполнить команду chroot, чтобы работать как root внутри этой системы. После этого достаточно использовать команду passwd для установки нового пароля. После выхода из chroot и перезагрузки системы изменения вступят в силу. Такой способ удобен при повреждении загрузчика или когда нет доступа к однопользовательскому режиму.
