1. Блог
  2. Мануалы

Как сбросить пароль root в Linux: Ubuntu, Debian, AlmaLinux

Как сбросить пароль root в Linux: Ubuntu, Debian, AlmaLinux

Забытый пароль root не означает потерю сервера. Если у вас есть доступ к консоли — физической или VNC в панели управления хостинга, — пароль можно заменить за несколько минут. Способ зависит от дистрибутива и от того, какой доступ у вас остался.

Сначала проверьте простые варианты

У вас есть пользователь с правами sudo. Тогда перезагрузка не нужна:

sudo passwd root

Вы входите по SSH-ключу. Если вход под root по ключу работает, пароль можно сменить командой passwd без ввода старого.

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

Если ничего из этого не подходит, понадобится консоль сервера. На VPS это VNC-консоль в панели управления: SSH для этой задачи не подойдёт, потому что нужно вмешаться в процесс загрузки.

Ubuntu и Debian: сброс через GRUB

  1. Перезагрузите сервер и дождитесь меню загрузчика GRUB. Если меню не появляется, сразу после начала загрузки удерживайте Shift (на системах с BIOS) или несколько раз нажмите Esc (на системах с UEFI).
  2. Выберите основную запись и нажмите e, чтобы отредактировать параметры загрузки.
  3. Найдите строку, которая начинается со слова linux. В её конце замените ro на rw и добавьте init=/bin/bash:
linux /boot/vmlinuz-... root=UUID=... rw init=/bin/bash
  1. Нажмите Ctrl+X или F10. Система загрузится в командную строку с правами root без запроса пароля.
  2. Задайте новый пароль:
passwd
  1. Запишите изменения на диск и перезагрузите сервер:
sync
reboot -f

Изменение параметров загрузки действует один раз: при следующей перезагрузке система запустится как обычно.

AlmaLinux, Rocky Linux, RHEL: режим rd.break

В этих системах дополнительно нужно учесть SELinux.

  1. Перезагрузите сервер, в меню GRUB выберите основную запись и нажмите e.
  2. Найдите строку, начинающуюся с linux, и добавьте в её конец rd.break.
  3. Нажмите Ctrl+X. Загрузка остановится на раннем этапе с приглашением switch_root:/#.
  4. Перемонтируйте системный раздел для записи и перейдите в него:
mount -o remount,rw /sysroot
chroot /sysroot
  1. Задайте новый пароль:
passwd
  1. Создайте файл, по которому SELinux заново расставит метки при загрузке. Без этого шага войти в систему не получится:
touch /.autorelabel
  1. Выйдите и продолжите загрузку:
exit
exit

Перемаркировка файлов занимает от пары минут до получаса в зависимости от размера диска. Сервер перезагрузится сам — не прерывайте процесс.

Если режим rd.break запрашивает пароль root, используйте вместо него параметр init=/bin/bash, как в инструкции для Ubuntu, и после смены пароля также выполните touch /.autorelabel.

Способ для любого дистрибутива: rescue-режим

Если загрузчик защищён паролем или отредактировать его параметры не удаётся, загрузите сервер с Live-образа или в режиме восстановления (rescue), который есть в панели управления у многих провайдеров.

  1. Определите корневой раздел установленной системы:
lsblk -f
  1. Смонтируйте его и перейдите в установленную систему:
mount /dev/sda2 /mnt
chroot /mnt
  1. Смените пароль и выйдите:
passwd
exit
umount /mnt

Для систем с SELinux перед выходом выполните touch /.autorelabel. После этого загрузите сервер с основного диска.

Если диск зашифрован (LUKS), сначала его нужно открыть командой cryptsetup open — для этого потребуется парольная фраза шифрования. Без неё восстановить доступ к данным невозможно.

Что сделать после восстановления

  • Проверьте, что вход работает, прежде чем закрывать консоль.
  • Настройте вход по SSH-ключам — тогда пароль root понадобится только в консоли: см. инструкцию по SSH.
  • Создайте отдельного пользователя с sudo. В следующий раз пароль root можно будет сменить без перезагрузки.
  • Сохраните пароль в менеджере паролей — например, в собственном Vaultwarden.

Почему это вообще возможно

Тот, у кого есть доступ к консоли сервера, может получить права root — это свойство любой системы, а не уязвимость Linux. Поэтому доступ к панели управления хостинга нужно защищать не слабее, чем сам сервер: надёжным паролем и двухфакторной аутентификацией.

#root#сброс пароля#grub#linux#восстановление доступа

Эта статья на других языках:EnglishУкраїнська