Сброс пароля root: пошаговые инструкции для CentOS, CoreOS, Debian, Ubuntu и FreeBSD
Важно: если корневой раздел зашифрован (LUKS), простая смена пароля через однопользовательский режим не снимет шифрование и не даст доступа к данным без ключа расшифровки.
Перед началом
- Убедитесь в наличии доступа к консоли сервера. При удалённом сервере откройте панель хостинга и используйте KVM/Serial Console.
- Сделайте снимок или бэкап, если это возможно. Смена пароля безопасна, но операции с загрузчиком и разметкой несут риск.
- Подготовьте учётные данные провайдера для перезагрузки и доступа к консоли.
- Примечание по безопасности: после восстановления доступа проверьте настройки SSH, аудит и логи на предмет неавторизованного доступа.
CentOS 7, Ubuntu и Debian
Перезагрузите сервер через панель или нажмите в консоли комбинацию для отправки CTRL+ALT+DEL. В момент появления экрана загрузчика GRUB нажмите ESC или любую клавишу, чтобы перейти в меню GRUB.
На экране GRUB выберите загрузочную запись и нажмите клавишу e для редактирования параметров загрузки.
Найдите строку, начинающуюся с linux, linux16 или vmlinuz. В конец этой строки добавьте одну из опций: init=/bin/bash или /bin/bash, в зависимости от дистрибутива и конфигурации. Цель — загрузить шелл до запуска systemd.
Пример: добавить /bin/bash в конец строки загрузки.
Нажмите F10 или CTRL+X чтобы загрузиться с изменёнными параметрами.
После загрузки вы получите root prompt. Выполните команду для перемонтирования корня в режим записи:
mount -rw -o remount /- Измените пароль root:
passwd- На системах с SELinux (например CentOS) после смены пароля выполните команду для корректной релабелизации меток при следующей загрузке:
touch /.autorelabel- Перезагрузите сервер:
exec /sbin/initили выполните reboot.
Примечание: в некоторых современных системах безопаснее использовать rd.break или systemd.unit=rescue.target вместо init=/bin/bash. Если первый метод не работает, попробуйте альтернативы или используйте режим восстановления провайдера.
CentOS 6
- Перезагрузите сервер и дождитесь приглашения GRUB. При появлении приглашения нажмите любую клавишу, чтобы остановить автозагрузку.
- Выберите строку загрузки и нажмите e для редактирования. Найдите строку kernel и в конце добавьте single или 1.
- Нажмите Enter для сохранения и затем b для загрузки с изменёнными параметрами.
- Система загрузится в однопользовательский режим и предоставит root prompt. Выполните:
passwd- Перезагрузите систему.
CoreOS требует SSH‑ключ для доступа
CoreOS по умолчанию использует SSH‑ключи и пользователя core. Обычный root может быть недоступен до выполнения sudo passwd от пользователя core. Если SSH‑ключ утерян, можно воспользоваться редактированием параметров GRUB для автоавторизации.
- Перезагрузите сервер и откройте GRUB, нажав e для редактирования записи загрузки.
- Найдите строку, начинающуюся с linux или содержащую linux$. В конец добавьте:
coreos.autologin=tty1- Нажмите F10 или CTRL+X для загрузки. Система должна автоматически войти в сеанс пользователя core на консоли.
- Выполните:
sudo passwdчтобы задать пароль для root, либо настройте новый SSH‑ключ и добавьте его в authorised_keys для пользователя core.
- После завершения перезагрузите сервер в нормальном режиме.
Важно: если у вас есть доступ только по SSH и нет консоли, используйте режим восстановления провайдера или загрузочную среду.
FreeBSD
- При загрузке в меню FreeBSD выберите пункт загрузки в однопользовательском режиме (single user) или нажмите соответствующую клавишу.
- После появления root prompt выполните:
passwd- Перезагрузите систему командой reboot.
Что делать, если описанные шаги не помогли
Альтернативные подходы:
- Использовать rescue режим или ISO для хоста от провайдера. Монтируйте корневой диск и меняйте /etc/shadow напрямую.
- Подключить диск к другой машине и изменить пароль или файлы конфигурации из окружения восстановления.
- Восстановить доступ через снимок диска или резервную копию.
Когда описанные методы не работают:
- Корневой раздел зашифрован LUKS — нужно иметь ключ расшифровки.
- GRUB защищён паролем — требуется доступ к паролю загрузчика или панель провайдера.
- Доступ к консоли отсутствует — обратитесь в техподдержку хостинга.
Проверки после восстановления доступа
- Попробуйте войти как root локально или по SSH.
- Убедитесь, что в /etc/shadow пароль обновлён для root.
- Проверьте настройки SSH в /etc/ssh/sshd_config: параметр PermitRootLogin и авторизованные ключи.
- Проверьте логи /var/log/auth.log или /var/log/secure на предмет подозрительных событий.
Критерии приёмки
- Успешный вход под root по консоли или SSH (если разрешён).
- Наличие корректной записи в /etc/shadow для root.
- После перезагрузки система загружается в обычный режим без оставшихся параметров автозагрузки.
Быстрая сводка для разных ролей
- Сисадмин: подготовить консоль, выполнить редактирование GRUB, перемонтировать / и запустить passwd, учесть SELinux.
- Поддержка хостинга: предоставить KVM/Serial Console или загрузочный ISO, либо сбросить пароль GRUB при необходимости.
- Менеджер по безопасности: убедиться в ревизии логов, обновлении ключей и ограничении доступа root по SSH.
Мини‑методика для быстрого выполнения
- Получить доступ к консоли сервера.
- Остановить автозагрузку GRUB и отредактировать строку загрузки.
- Добавить init=/bin/bash или single, загрузиться.
- Выполнить mount -rw -o remount /.
- Выполнить passwd и при необходимости touch /.autorelabel.
- Перезагрузить и проверить доступ.
Решение выбора метода
flowchart TD
A[Нет доступа к SSH?] -->|Нет| B[Попробовать войти как root]
A -->|Да| C[Есть консоль KVM?]
C -->|Да| D[Редактировать GRUB и выполнить passwd]
C -->|Нет| E[Использовать rescue ISO хостинга]
D --> F{Работает?}
F -->|Да| G[Проверить SSH и логи]
F -->|Нет| E
E --> H[Применить монтирование диска на другой системе]Краткий словарь
- GRUB — загрузчик, управляющий параметрами загрузки ОС.
- Однопользовательский режим — среда для восстановления с доступом root и минимумом сервисов.
- core — стандартный пользователь в CoreOS.
Примечания по безопасности и конфиденциальности
- Сброс пароля не снимает шифрование диска. Если диск зашифрован, нужен ключ LUKS.
- После восстановления доступа замените SSH‑ключи и обновите политики доступа.
- Оповестите заинтересованные стороны и задокументируйте действия в журнале инцидентов.
Итог
Сброс пароля root чаще всего выполняется через редактирование параметров загрузчика и смену пароля в однопользовательском режиме. Если доступ к консоли отсутствует или корень зашифрован, используйте rescue режим провайдера или монтирование диска на другую систему. Всегда проверяйте настройки SSH и логи после восстановления доступа.
Ключевые команды для быстрого копирования:
mount -rw -o remount /
passwd
touch /.autorelabelПохожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента