Якщо ви забули пароль від 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 із новим паролем.
Що далі
Якщо раптом у вас щось йде не так, коли ви намагаєтеся пройти інструкції, опишіть вашу ситуацію в коментарі до статті або приходьте в чат з підтримкою в віконці в нижньому правому кутку. Ми завжди на зв’язку. Будемо раді допомогти!