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 с пустым паролем и смените его на нужный нам стандартными средствами через правое верхнее меню.
Вот и все! Цель достигнута! Рекомендуем сохранить новый пароль и больше никогда его не терять!