Сброс пароля пользователя root в ESXi 7.x

Иногда возникают ситуации, когда по тем или иным причинам авторизоваться в консоли управления ESXi не представляется возможным в виду отсутствия актуального пароля. Это может произойти в результате взлома системы, системного сбоя, утери пароля либо в случае если вам в наследство передали ESXi без документации и надлежащего административного контроля. Это неприятная ситуация и с ней придётся что-то делать. Возможно не сразу, а когда что-то пойдёт не так и понадобится вмешиваться в работу до сих пор нормально функционирующей системы. Для таких случаев и написанная данная инструкция.

Существует несколько способов сброса пароля. Однако приведенный в этой статье – универсальный и подойдёт не только для 7.х версий но и более ранних. Он опробован на практике и является в подавляющем большенстве случаев рабочим. Итак приступим.

Для начала нам необходимо загрузиться с любого Live CD. Это может быть установочный образ Ubuntu, либо, как в нашем случае – Finnix . Это debian-based дистрибутив с широкими возможностями для диагностики и аварийного восстановления.

После загрузки вы увидите приглашение консоли:

В том случае если ваш сервер расположен удаленно и вы подключены по нему по IP-KVM, работать в таком режиме не очень удобно из-за высокого времени отклика консоли. Что бы это не терпеть, можно поднять ssh-сервер. Если же это не является проблемой, вы моете пропустит этот шаг

# зададим пароль root для live системы
passwd
# подымаем ssh-сервер
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

Внутри много чего всякого, но нам нужен конкретный файл

img

Его необходимо распаковать в ранее созданную директорию

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.

Далее необходимо отредактировать файл shadow и удалить из него хеш пароля 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

После перезагрузки, заходим на web-интерфейс ESXi под пользователем root и пустым паролем и меняем его на нужный нам штатными средствами через верхнее правое меню.
Всё! Цель достигнута! Рекомендуем сохранить новы пароль и больше не терять его!