Content
Скидання пароля користувача root в ESXi 7.x
Іноді, з тих чи інших причин, ви не можете ввійти в консоль керування ESXi, оскільки у вас немає актуального пароля. Це може бути пов'язано зі зламом системи, збоєм системи, втратою пароля або якщо ви успадкували ESXi без документації або належного адміністративного контролю. Це неприємна ситуація, і з нею потрібно щось робити. Можливо, не одразу, але коли щось піде не так і вам потрібно буде втрутитися в систему, яка до цього часу працювала нормально. Ця інструкція написана саме для таких випадків.
Існує кілька способів скинути пароль. Однак наведений у цій статті є універсальним і підійде не тільки для версій 7.x, але й для більш ранніх. Він перевірений на практиці і працює в більшості випадків. Отже, давайте почнемо.
Спочатку нам потрібно завантажитися з будь-якого Live CD. Це може бути інсталяційний образ Ubuntu або, як у нашому випадку, Finnix. Це дистрибутив на основі debian з широкими можливостями діагностики та аварійного відновлення.
Після завантаження ви побачите запрошення до консолі:
Якщо ваш сервер розташований віддалено і ви підключені до нього через IP-KVM, працювати в такому режимі не дуже зручно через великий час відгуку консолі. Щоб уникнути цього, ви можете налаштувати ssh-сервер. Якщо це не є проблемою, ви можете пропустити цей крок.
# set the root password for the live system passwd # bring up the ssh server service ssh star
Після цього ви можете підключитися до сервера за допомогою вашого улюбленого ssh-клієнта або з консолі:
ssh root@1.2.3.4
Тепер нам потрібно визначити, на якому диску міститься потрібний нам розділ. Для цього спочатку визначимо, які диски у нас є.
root@0:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 377.2M 1 loop /usr/lib/live/mount/rootfs/filesystem.squashfs /run/live/rootfs/filesystem.squashfs sda 8:0 1 3.6T 0 disk └─sda1 8:1 1 3.6T 0 part sdb 8:16 1 3.6T 0 disk └─sdb1 8:17 1 3.6T 0 part sr0 11:0 1 455M 0 rom /run/live/medium zram0 252:0 0 62.8G 0 disk [SWAP] nvme1n1 259:0 0 476.9G 0 disk └─nvme1n1p1 259:2 0 476.9G 0 part nvme0n1 259:1 0 476.9G 0 disk ├─nvme0n1p1 259:3 0 4M 0 part ├─nvme0n1p2 259:4 0 4G 0 part ├─nvme0n1p3 259:5 0 469.6G 0 part ├──nvme0n1p5 259:6 0 250M 0 part ├─nvme0n1p6 259:7 0 250M 0 part ├─nvme0n1p7 259:8 0 110M 0 part ├─nvme0n1p8 259:9 0 286M 0 part └─nvme0n1p9 259:10 0 2.5G 0 part
Наш основний критерій пошуку - розділ диска розміром 250 МБ. Як бачимо, диск nvme0n1 містить такий розділ, давайте розглянемо його детальніше:
fdisk -l /dev/nvme0n1
Наша мета - розділ, який починається з сектора 8224 і має розмір 250 МБ. Це розділ, який містить дані, які нам потрібні
Для продовження, давайте створимо 2 каталоги, один для монтування диска, а інший для даних, які нам потрібно відредагувати.
mkdir /mnt/vmware && mkdir /tmp/vmware
Змонтуємо знайдений розділ
mount /dev/nvme0n1p5 /mnt/vmware
Усередині багато всього, але нам потрібен конкретний файл
Його потрібно розпакувати в каталог, створений раніше
tar -xf /mnt/vmware/state.tgz -C /tmp/vmware/ tar -xf /tmp/vmware/local.tgz -C /tmp/vmware/ rm /tmp/vmware/local.tgz
Тепер, якщо ми перейдемо до /tmp/vmware/ і переглянемо його вміст, ми знайдемо там знайомий нам каталог etc.
Далі нам потрібно відредагувати тіньовий файл і видалити з нього хеш пароля root. Таким чином ESXi буде думати, що після наших маніпуляцій пароль користувача порожній.
nano /tmp/vmware/etc/shadow
Робити це потрібно дуже обережно. Необхідно видалити вміст між першим і другим двокрапкою
і це повинно виглядати наступним чином
Збережіть файл за допомогою кнопки F3. На цьому найважливіша частина завершена. Далі вам потрібно все упакувати і покласти туди, де ви це знайшли.
cd /tmp/vmware/ tar -czf local.tgz etc tar -czf state.tgz local.tgz mv state.tgz /mnt/vmware/
Від'єднайте диск ESXi і перезавантажтеся.
umount /mnt/vmware/ reboot
Після перезавантаження входимо у веб-інтерфейс ESXi як користувач root з порожнім паролем і змінюємо його на потрібний нам стандартними засобами через верхнє праве меню.
І все! Мета досягнута! Рекомендуємо вам зберегти новий пароль і більше ніколи його не втрачати!