Если вы забыли пароль от root на Linux VPS у нас в облаке, вот инструкция, которая поможет сбросить пароль в разных дистрибутивах.
Зайдите в панель управления облаком и перейдите в раздел «Проект – Вычислительные ресурсы – Серверы». Кликните по названию нужного сервера и на открывшейся странице перейдите во вкладку «Консоль».
Содержание
Centos 7
Нажмите кнопку «Send Ctrl+Alt+Del» в правом верхнем углу консоли, это перезагрузит сервер. Сразу выделяем область консоли мышью. Во время перезагрузки нужно «поймать» меню загрузчика. В нашем образе CentOS 7 используется GRUB.
Как только вы увидите на экране такую картинку, нажмите пробел или кнопку вниз — это прервет отсчет времени:
Стрелками выберите нужное ядро, которое отображено на скриншоте, затем введите латинское «e». После этого откроются опции загрузки ядра.
При помощи стрелок перейдите к началу строки, которая начинается с «linux16». Это путь к файлу ядра, а также опции для его загрузки. Вам нужно переписать эти опции, чтобы попасть в ОС без root-пароля. Для этого выполните такие шаги:
- Замените ro на rw
- Замените первое значение console=tty0 на console=tty
- Удалите 2 значения: console=ttyS0,115200n8 и console=ttyS0,115200
- В конце добавьте init=/bin/bash
Было:
Стало:
После изменений нажмите комбинацию клавиш CTRL+X. Эта комбинация перезагрузит ядро с новыми опциями. Если вы всё сделали правильно, отобразится вот это:
Вы попали на сервер от имени root без пароля и можете сбросить сам пароль. Для этого введите такие команды:
passwd root
touch /.autorelabel
sync
Дальше, чтобы изменения применились, перезагрузите сервер. Только команды reboot или shutdown -r, а также кнопка «Send Ctrl+Alt+Del» для этого не подойдут. Они рассчитывают на init-демона, которого мы подменили процессом /bin/bash. Так что нужно сделать холодную перезагрузку сервера в контрольной панели (в колонке «Action») или запустить init-демона вручную при помощи такой команды:
exec /sbin/init
После этого можете заходить на сервер от имени root с новым паролем.
Fedora 28
Нажмите кнопку «Send Ctrl+Alt+Del» в правом верхнем углу консоли, это перезагрузит сервер. Сразу выделяем область консоли мышью. Во время перезагрузки нужно «поймать» меню загрузчика. В нашем образе Fedora используется GRUB.
Как только вы увидите на экране такую картинку, нажмите пробел или кнопку вниз — это прервет отсчет времени:
GRUB некоторое время «думает» на этом меню загрузки. Введите латинское «e», чтобы открыть параметры загрузки ядра.
При помощи стрелок перейдите к началу строки, которая начинается с «linux16». Это путь к файлу ядра, а также опции для его загрузки. Вам нужно переписать эти опции, чтобы попасть в ОС без root-пароля. Для этого выполните такие шаги:
- Замените ro на rw
- Замените первое значение console=tty1 на console=tty
- Удалите значение console=ttyS0,115200n8
- В конце добавьте rd.break enforcing=0
Было:
Стало:
После изменений нажмите комбинацию клавиш CTRL+X. Эта комбинация перезагрузит ядро с новыми опциями. Если вы всё сделали правильно, отобразится вот это:
Вы зашли в раздел консоли «emergency recovery». Сначала проверьте, можно ли вносить изменения в файловую систему. Для этого введите в консоли:
mount | grep vda
Если все сделали правильно, отобразится такой результат.
Вас интересует опция rw, которую вы только что задали в настройках. Должна быть указана она — не ro. Если видим ro — нужно перемонтировать файловую систему в rw:
mount -o remount, rw /
После монтирования снова проверьте, что опция при проверке указана как rw, при помощи команды из предыдущего пункта.
Затем выполните такие команды, чтобы сбросить пароль от root:
chroot /sysroot
passwd
sync
exit
exit
После этого пойдет нормальная загрузка ОС. Дождитесь окончания загрузки и войдите от имени root с новым паролем.
Первым делом поправьте Selinux после вашего вмешательства. Введите такие команды:
restorecon -v /etc/shadow
setenforce 1
openSUSE Leap 42
Если вы настраивали пароль на Grub-загрузчик и не помните его тоже этот способ вам не подойдет. Вам нужно будет загрузить сервер с другого источника — например, с OpenSuse Install DVD образа.
Нажмите кнопку «Send Ctrl+Alt+Del» в правом верхнем углу консоли, это перезагрузит сервер. Сразу выделяем область консоли мышью. Во время перезагрузки нужно «поймать» меню загрузчика. В нашем образе openSUSE используется GRUB.
Как только вы увидите на экране такую картинку, нажмите пробел или кнопку вниз — это прервет отсчет времени:
GRUB некоторое время «думает» на этом меню загрузки. Введите латинское «e», чтобы открыть параметры загрузки ядра.
Чтобы восстановить пароль, будем использовать способ с запуском bash как init процесса.
При помощи стрелок перейдите к началу строки, которая начинается с «linux». Это путь к файлу ядра, а также опции для его загрузки. Вам нужно переписать эти опции, чтобы попасть в ОС без root-пароля. Для этого выполните такие шаги:
- Удалите значение: console=ttyS0,115200n8
- Замените значение console=tty0 на console=tty
- В конце добавьте init=/bin/bash
Было:
Стало:
После изменений нажмите комбинацию клавиш CTRL+X. Это выполнит перезагрузку сервера с новыми опциями. Если всё было сделано правильно, вы увидите такую картину:
Это значит, что вы попали на сервер от root без пароля и можете его сбросить. Для этого сначала выполните монтирование файловой системы для возможности внесения изменений:
mount -o remount, rw /
Проверьте корректность изменений(в скобках должна быть указана опция rw, а не ro):
mount | grep vda
Дальше сбросьте пароль при помощи команды:
passwd
После этого на всякий случай выполните команду sync, чтобы все изменения из оперативной памяти записались на диск:
sync
Дальше, чтобы изменения применились, перезагрузите сервер. Только команды reboot или shutdown -r, а также кнопка «Send Ctrl+Alt+Del» для этого не подойдут. Они рассчитывают на init-демона, которого мы подменили процессом /bin/bash. Так что нужно сделать холодную перезагрузку сервера в контрольной панели (в колонке «Action») или запустить init-демона вручную при помощи такой команды:
exec /sbin/init
После этого можете заходить на сервер от имени root с новым паролем.
Ubuntu 16, 18, 20, 22
Нажмите кнопку «Send Ctrl+Alt+Del» в правом верхнем углу консоли, это перезагрузит сервер. Сразу выделяем область консоли мышью. Во время перезагрузки нужно «поймать» меню загрузчика. В нашем образе Ubuntu используется GRUB.
В Canonical меню GRUB обычно не видно. Чтобы его вызвать, надо зажать клавишу Shift (только левый) в процессе загрузки, как только мелькает надпись «Booting from hard disk».
Если с первого раза не получится, пробуйте еще раз. В результате вы должны увидеть такую картинку. Стрелками выберите «Advanced options for Ubuntu» и нажмите Enter.
Дальше выберите пункт с «(recovery mode)» и нажмите Enter.
Выберите пункт «root > Drop to root shell prompt» и нажмите Enter:
В наших шаблонах ОС Ubuntu не нужно вводить дополнительный пароль. Мы попадаем на сервер от root без него.
Дальше сбросьте пароль при помощи команды:
passwd
После этого на всякий случай выполните команду sync, чтобы все изменения из оперативной памяти записались на диск:
sync
Дальше, чтобы изменения применились, перезагрузите сервер. Только команды reboot или shutdown -r, а также кнопка «Send Ctrl+Alt+Del» для этого не подойдут. Они рассчитывают на init-демона, которого мы подменили процессом /bin/bash.
Вам нужно сделать холодную перезагрузку сервера в контрольной панели (в колонке «Action») или запустить init-демона вручную при помощи такой команды:
exec /sbin/init
В появившемся окне выберите опцию «resume > Resume normal boot». После этого можете заходить на сервер от имени root с новым паролем.
Debian 8 + Debian 9
Нажмите кнопку «Send Ctrl+Alt+Del» в правом верхнем углу консоли, это перезагрузит сервер. Сразу выделяем область консоли мышью. Во время перезагрузки нужно «поймать» меню загрузчика. В нашем образе Debian используется GRUB.
2. В Canonical меню Grub обычно не видно. Чтобы его вызвать, зажмите левый Shift в процессе загрузки, как только увидите надпись «Booting from hard disk».
Если с первого раза не получится, пробуйте еще раз. В результате вы должны получить следующую картинку:
В отличие от Ubuntu, root-пользователь в образе Debian закрыт (на пароле). Потому мы не сможем воспользоваться штатным вариантом загрузки Rescue. Нужно поправить опции загрузки.
Выберите пункт «Debian GNU/Linux» и нажмите латинскую «e». Откроются параметры выбранного пункта меню:
При помощи стрелок перейдите к началу строки, которая начинается с «linux». Это путь к файлу ядра, а также опции для его загрузки. Вам нужно переписать эти опции, чтобы попасть в ОС без root-пароля. Для этого выполните такие шаги:
- Замените ro на rw
- Замените первое значение console=tt0 на console=tty
- Удалите 2 значения: console=ttyS0,115200 и earlyprintk=ttyS0,115200
- В конце добавьте init=/bin/bash
Было:
Стало:
После изменений нажмите комбинацию клавиш CTRL+X. Дальше вы попадёте на сервер, где можно будет сбросить пароль при помощи команды:
passwd
После этого на всякий случай выполните команду sync, чтобы все изменения из оперативной памяти записались на диск:
sync
Дальше, чтобы изменения применились, перезагрузите сервер. Только команды reboot или shutdown -r, а также кнопка «Send Ctrl+Alt+Del» для этого не подойдут. Они рассчитывают на init-демона, которого мы подменили процессом /bin/bash.
Вам нужно сделать холодную перезагрузку сервера в контрольной панели (в колонке «Action») или запустить init-демона вручную при помощи такой команды:
exec /sbin/init
После этого можете заходить на сервер от имени root с новым паролем.
Что дальше
Если вдруг у вас что-то идёт не так, когда вы пытаетесь проследовать инструкциям, опишите вашу ситуацию в комментария к статье или приходите в чат с поддержкой в окошке в нижнем правом углу. Мы всегда на связи. Будем рады помочь!