Якщо ви забули root-пароль від Linux-сервера в хмарі, і sudo прав на машину в інших користувачів немає, скористайтеся нашою інструкцією, щоб скинути root-пароль під різні ОС.
Якщо в інструкції щось незрозуміло, звертайтеся в чат на сайті.
Зайдіть у вбудовану консоль панелі керування. Зайти в неї можна, натиснувши на ім’я сервера та вибравши меню Консоль, або обравши потрібний пункт у меню навпроти сервера.
Centos 7 x86_64 + Centos 7 x86_64 Webuzo
1. Натисніть кнопку Send Ctrl+Alt+Del у консолі — це перезавантажить сервер. Під час завантаження потрібно «зловити» меню завантажувача. У нашому образі CentOS 7 використовується Grub.
2. Як тільки ви побачите на екрані таку картинку, натисніть пробіл або кнопку вниз — це зупинить відлік часу:
3. Grub деякий час «думає» на цьому меню завантаження. Тому треба дати йому зрозуміти, що не потрібно автоматично продовжувати завантаження з налаштуваннями за замовчуванням, і що ми хочемо працювати з його меню.
4. Стрілками обираємо потрібне ядро, яке відображено на скріншоті, і вводимо «e» латиницею.
5. Тепер ми можемо редагувати параметри завантаження ядра:
6. Стрілками переходимо до початку рядка, який починається з «linux16». Це вказівка шляху до файлу ядра, яке потрібно завантажити, а також опції завантаження. Нам потрібно переписати ці опції, щоб потрапити до ОС без root-паролю.
Робимо таке:
- Змінюємо ro на rw
- Змінюємо перше значення console=tty0 на console=tty
- Видаляємо 2 значення: console=ttyS0,115200n8 та console=ttyS0,115200
- Наприкінці додаємо init=/bin/bash
Було:
Стало:
7. Після зміни натискаємо комбінацію клавіш CTRL+X, що перезавантажує ядро з новими опціями.
8. Якщо ми все зробили коректно, побачимо таке:
9. Ми потрапили на сервер від root без пароля і можемо скинути пароль.
Спочатку перевіряємо, чи можна внести зміни до файлової системи. Для цього в консолі вводимо:
mount | grep vda
Якщо все зробили правильно, побачимо такий екран:
На екрані ми повинні бачити опцію rw, яку ми задавали в налаштуваннях — не ro. Якщо бачимо ro, потрібно перемонтувати файлову систему в rw:
mount -o remount, rw /
Після монтування потрібно знову перевіряти ще раз, що опція вказана як rw, за допомогою команди з попереднього пункту.
10. Скидаємо пароль командою:
Passwd
Важливо! Новий пароль не відображається навіть зірочками. Тому потрібно вводити його наосліп двічі.
Ще важливіше! Якщо ви не вимикали Selinux, вам також доведеться змусити його перечитати контексти. Для цього треба створити файл /.autorelabel, який дасть Selinux зрозуміти, що потрібно перечитати контекст. Без цього ми не зможемо залогінитися з новим паролем:
touch /.autorelabel
11. Після цього, про всяк випадок, виконуємо команду sync, щоб усі зміни з оперативної пам’яті записалися на диск:
sync
12. Щоб змінити зміни, перезавантажте сервер.
Команди reboot і shutdown -r і кнопка Send Ctrl+Alt+Del не підійдуть. Вони розраховують на init -демона, який ми підмінили процесом /bin/bash.
Тому потрібно зробити hard reboot сервера (холодне перезавантаження) з контрольної панелі, або запустити init -демона вручну. Це можна зробити, виконавши команду:
exec /sbin/init
13. Після перезавантаження можемо зайти на сервер від імені root із новим паролем.
Fedora 28
1. Натисніть на кнопку «Send Ctrl+Alt+Del» в консолі — це перезавантажить сервер. У процесі завантаження потрібно «зловити» меню завантажувача. У нашому образі Fedora використовується Grub.
Як тільки ви побачите на екрані таку картинку, натисніть пробіл або кнопку вниз — це зупинить відлік часу:
2. Grub деякий час «думає» на цьому меню завантаження. Тому треба дати йому зрозуміти, що не потрібно автоматично продовжувати завантаження з налаштуваннями за замовчуванням, і що ми хочемо працювати з його меню. Для цього вводимо «e» латиницею.
З’являється можливість редагувати параметри завантаження ядра.
3. Стрілками переходимо до початку рядка, що починається з «linux16». Це вказівка шляху до файлу ядра, яке потрібно завантажити, а також опції завантаження. Нам потрібно переписати ці опції, щоб потрапити до ОС без root-паролю.
Робимо таке:
- Змінюємо ro на rw
- Змінюємо перше значення console=tty1 на console=tty
- Видаляємо значення console=ttyS0,115200n8
- Наприкінці додаємо rd.break enforcing=0
Було:
Стало:
4. Після змін натискаємо комбінацію клавіш CTRL+X. Це перезавантажує сервер із новими опціями. Якщо все зробили правильно, бачимо таке:
5. Ми зайшли в «emergency recovery» консолі.
Спочатку перевіряємо, чи можемо вносити зміни до файлової системи. Для цього в консолі вводимо:
mount | grep vda
Якщо все зробили правильно, побачимо таке:
Нас цікавить опція rw, яку ми задавали в налаштуваннях. Повинна бути вказана вона не ro. Якщо бачимо ro — потрібно перемонтувати файлову систему в rw:
mount -o remount, rw /
6. Після встановлення знову перевірте, що опція при перевірці вказана як rw, за допомогою команди з попереднього пункту.
7. Скидаємо пароль:
chroot /sysroot
Потім:
passwd
Важливо! Новий пароль не відображається навіть зірочками. Тому треба вводити його наосліп двічі.
8. Після цього, про всяк випадок, виконуємо команду sync — щоб усі зміни з оперативної пам’яті записалися на диск:
sync
2 рази вводимо команду:
exit
9. Після цього піде нормальне завантаження ОС. Очікуємо закінчення завантаження і входимо з новим паролем.
10. Тепер потрібно виправити Selinux після нашого втручання. Віддаємо команди від root:
restorecon -v /etc/shadow setenforce 1
Файл /etc/shadow перечитується для Selinux і вмикається режим назад в Enforcing.
openSUSE Leap 42
Якщо ви налаштовували пароль на Grub-завантажувач і не пам’ятаєте його, цей спосіб вам не підійде. Вам потрібно буде завантажити сервер з іншого джерела, наприклад, з OpenSuse Install DVD образу.
1. Натисніть на кнопку «Send Ctrl+Alt+Del» в консолі — це перезавантажить сервер. У процесі завантаження потрібно «зловити» меню завантажувача. У нашому образі openSUSE використовується Grub.
Як тільки ви побачите на екрані таку картинку, натисніть пробіл або кнопку вниз — це зупинить відлік часу:
2. Grub деякий час «думає» на цьому меню завантаження. Тому треба дати йому зрозуміти, що не потрібно автоматично продовжувати завантаження з налаштуваннями за замовчуванням, і що ми хочемо працювати з його меню. Для цього вводимо «e» латиницею.
З’являється можливість редагувати параметри завантаження ядра.
Щоб відновити пароль, ми можемо використовувати як single-user mode, так і трюк з init=/bin/bash. Оскільки можливо, що у вас single-user mode налаштований так, щоб все одно вимагати root-пароль, ми відразу опишемо спосіб із запуском bash як init процесом.
Наші образи openSUSE використовують Grub як завантажувач. Якщо ви використовували свій образ openSUSE, ваш завантажувач може бути не Grub, а LiLo. У такому разі, синтакс відрізнятиметься.
3. Стрілки переходимо до початку рядка, що починається з «linux». Це вказівка шляху до файлу ядра, яке потрібно завантажити, а також опції завантаження. Нам потрібно переписати ці опції, щоб потрапити до ОС без root-паролю.
Робимо таке:
- Видаляємо значення: console=ttyS0,115200n8
- Змінюємо значення console=tty0 на console=tty
- Наприкінці додаємо init=/bin/bash
Було:
Стало:
4. Після зміни натискаємо комбінацію клавіш CTRL+X, що виконує перезавантаження з новими опціями.
5. Якщо все було виконано коректно, бачимо таку картину:
Ми потрапили на сервер від root без пароля та можемо виконати скидання самого пароля.
6. Для початку виконуємо монтування файлової системи для можливості внесення змін, в консолі вводимо:
mount -o remount, rw /
Перевіряємо коректність змін:
mount | grep vda
Якщо все було виконано правильно, ми побачимо таке:
Нас цікавить опція rw , повинна бути вказана саме вона, а не ro.
7. Скидаємо пароль командою:
Passwd
Важливо! Новий пароль не відображається навіть зірочками, тому треба вводити його наосліп двічі.
8. Після цього, про всяк випадок, виконуємо команду sync , щоб усі зміни з оперативної пам’яті записалися на диск:
sync
9. Далі потрібно перезавантажити сервер для застосування змін.
Команди reboot і shutdown -r і кнопка Send Ctrl+Alt+Del не підійдуть. Вони розраховують на init-демона, який ми підмінили процесом /bin/bash. Тому потрібно зробити hard reboot сервера (холодне перезавантаження) з контрольної панелі, або запустити init-демона вручну. Це можна зробити, виконавши команду:
exec /sbin/init
13. Після перезавантаження можемо зайти на сервер від імені root із новим паролем.
Ubuntu 14.04
1. Натисніть кнопку Send Ctrl+Alt+Del — це перезавантажить сервер. Відразу виділяємо область консолі мишею. У процесі завантаження потрібно встигнути «зловити» меню завантажувача. У нашому образі Ubuntu використовується Grub.
2. У Canonical меню Grub зазвичай не видно. Щоб його викликати, треба затиснути клавішу Shift (тільки лівий) у процесі завантаження, як тільки з’являється напис Booting from hard disk.
Якщо з першого разу не вийде, спробуйте ще раз.
В результаті ви повинні отримати наступне зображення:
3. На першому пункті Ubuntu натискаємо «e» латиницею і бачимо наступне:
4. Стрілками переходимо до початку рядка, який починається з «linux». Це вказівка шляху до файлу ядра, яке потрібно завантажити, а також опції завантаження. Нам потрібно переписати ці опції, щоб потрапити до ОС без root-паролю.
Робимо таке:
- Змінюємо ro на rw
- Змінюємо перше значення console=tty1 на console=tty
- Видаляємо значення: console=ttyS0
- Наприкінці додаємо init=/bin/bash
Було:
Стало:
5. Після зміни натискаємо комбінацію клавіш CTRL+X, що виконує перезавантаження з новими опціями.
Якщо все зробили правильно, бачимо таке:
Ми потрапили на сервер від root та можемо скинути пароль.
6. Виконуємо перевірку можливості внесення змін до файлової системи:
mount | grep vda
Якщо все зробили правильно, бачимо таке:
Нас цікавить опція rw, яку ми задавали в налаштуваннях. Повинна бути вказана вона не ro.
7. Якщо бачимо ro — потрібно перемонтувати файлову систему в rw:
mount -o remount, rw /
8. Після встановлення знову перевірте, що опція при перевірці вказана як rw, за допомогою команди з попереднього пункту.
9. Скидаємо пароль командою:
Passwd
Важливо! Новий пароль не відображається навіть зірочками. Тому потрібно вводити його наосліп двічі.
Ще важливіше! Якщо ви не вимикали Selinux, вам також доведеться змусити його перечитати контексти. Для цього треба створити файл /.autorelabel, який дасть Selinux зрозуміти, що потрібно перечитати контекст. Без цього ми не зможемо залогінитися з новим паролем:
touch /.autorelabel
10. Після цього, про всяк випадок, виконуємо команду sync, щоб усі зміни з оперативної пам’яті записалися на диск:
sync
11. Щоб змінити зміни, перезавантажте сервер.
Команди reboot і shutdown -r і кнопка Send Ctrl+Alt+Del не підійдуть. Вони розраховують на init-демона, який ми підмінили процесом /bin/bash. Тому потрібно зробити hard reboot сервера (холодне перезавантаження) з контрольної панелі, або запустити init-демона вручну. Це можна зробити, виконавши команду:
exec /sbin/init
13. Після перезавантаження можемо зайти на сервер від імені root із новим паролем.
Ubuntu 16.04
1. Натисніть кнопку Send Ctrl+Alt+Del — це перезавантажить сервер. Відразу виділяємо область консолі мишею. У процесі завантаження потрібно встигнути «зловити» меню завантажувача. У нашому образі Ubuntu використовується Grub.
2. У Canonical меню Grub зазвичай не видно. Щоб його викликати, треба затиснути клавішу Shift (тільки лівий) у процесі завантаження, як тільки з’являється напис Booting from hard disk.
Якщо з першого разу не вийде, спробуйте ще раз. В результаті ви повинні отримати наступне зображення:
3. Стрілками обираємо «Advanced options for Ubuntu» і натискаємо Enter, бачимо наступне:
4. Обираємо пункт з (recovery mode) та натискаємо Enter.
5. Обираємо пункт «root Drop to root shell prompt» і натискаємо Enter:
7. У наших шаблонах Ubuntu не потрібно вводити додатковий пароль. Ми потрапляємо на сервер від root без нього.
8. Для початку виконуємо перевірку можливості внесення змін до файлової системи, в консолі вводимо:
mount | grep vda
Нас цікавить опція rw, яку ми задавали в налаштуваннях. Повинна бути вказана вона не ro.
9. Якщо бачимо ro — потрібно перемонтувати файлову систему в rw:
mount -o remount, rw /
10. Після встановлення знову перевірте, що опція при перевірці вказана як rw, за допомогою команди з попереднього пункту.
11. Скидаємо пароль командою:
Passwd
Важливо! Новий пароль не відображається навіть зірочками. Тому потрібно вводити його наосліп двічі.
12. Після цього, про всяк випадок, виконуємо команду sync, щоб усі зміни з оперативної пам’яті записалися на диск:
sync
13. Щоб змінилися, перезавантажте сервер.
Команди reboot і shutdown -r і кнопка Send Ctrl+Alt+Del не підійдуть. Вони розраховують на init-демона, який ми підмінили процесом /bin/bash. Тому потрібно зробити hard reboot сервера (холодне перезавантаження) з контрольної панелі, або запустити init-демона вручну. Це можна зробити, виконавши команду:
exec /sbin/init
14. Після перезавантаження можемо зайти на сервер від імені root із новим паролем.
Debian 8 + Debian 9
1. Натисніть кнопку Send Ctrl+Alt+Del — це перезавантажить сервер. Відразу виділяємо область консолі мишею. У процесі завантаження потрібно встигнути «зловити» меню завантажувача. У наших образах Debian використовується Grub.
2. У Canonical меню Grub зазвичай не видно. Щоб його викликати, треба затиснути клавішу Shift (тільки лівий) у процесі завантаження, як тільки з’являється напис Booting from hard disk.
Якщо з першого разу не вийде, спробуйте ще раз.
В результаті ви повинні отримати наступне зображення:
3. На відміну від Ubuntu, root-користувач у Debian образі закритий (на паролі). Тому ми не зможемо скористатися штатним Rescue варіантом завантаження. Потрібно виправити опції завантаження.
4. Вибираємо пункт Debian GNU/Linux та натискаємо e латиницею.
5. Потрапимо до конфігурації вибраного пункту меню:
6. Стрілками переходимо до початку рядка, який починається з «linux». Це вказівка шляху до файлу ядра, яке потрібно завантажити, а також опції завантаження. Нам потрібно переписати ці опції, щоб потрапити до ОС без root-паролю. Робимо таке:
- Змінюємо ro на rw
- Змінюємо перше значення console=tt0 на console=tty
- Видаляємо 2 значення: console=ttyS0,115200 та earlyprintk=ttyS0,115200
- наприкінці додаємо init=/bin/bash
Було:
Стало:
7. Після зміни натискаємо комбінацію клавіш CTRL+X, бачимо меню та натискаємо Enter.
8. Ми потрапили на сервер від root та можемо скинути пароль. Виконуємо перевірку можливості внесення змін до файлової системи:
mount | grep vda
Якщо все зробили правильно, бачимо таке:
Нас цікавить опція rw, яку ми задавали в налаштуваннях. Повинна бути вказана вона не ro.
9. Якщо бачимо ro, потрібно перемонтувати файлову систему в rw:
mount -o remount, rw /
10. Після встановлення знову перевірте, що опція при перевірці вказана як rw, за допомогою команди з попереднього пункту.
11. Скидаємо пароль командою:
Passwd
Важливо! Новий пароль не відображається навіть зірочками. Тому потрібно вводити його наосліп двічі.
12. Після цього, про всяк випадок, виконуємо команду sync, щоб усі зміни з оперативної пам’яті записалися на диск:
sync
13. Щоб змінилися, перезавантажте сервер.
Команди reboot і shutdown -r і кнопка Send Ctrl+Alt+Del не підійдуть. Вони розраховують на init-демона, який ми підмінили процесом /bin/bash. Тому потрібно зробити hard reboot сервера (холодне перезавантаження) з контрольної панелі, або запустити init-демона вручну. Це можна зробити, виконавши команду:
exec /sbin/init
14. Після перезавантаження можемо зайти на сервер від імені root із новим паролем.