Если Вы хотите просто изменить пароль к пользователю root для доступа в панель VMware ESXi, то это можно сделать несколькими способами.
К примеру, если знаете текущий пароль, то можно просто изменить в самой панели управления ESXi,
а если забыли пароль, но у Вас имеется подключенная панель управления vCenter, то пароль на данный хост можно изменить в веб-панели vCenter.
В более ранних версиях (до 4.x) можно было изменить пароль через GRUB загрузчик.
Это все понятно, но что делать в случае, если у Вас установлен лишь автономный гипервизор VMware ESXi на выделенном сервере и Вы забыли пароль к пользователю root?
Ведь без возможности войти в панель управления под администрирующим пользователем,
Вы теряете возможность управления Вашими виртуальными машинами, дисками, сетью и всем остальным, а инструментов для восстановления пароля VMware в такой ситуации не предлагает.
На оффициальной форуме сайта VMware написано, что в таком случае нужно полностью переустанавливать сервер и гипервизор, что явно не является идеальным решением данной задачи.
К счастью мы можем воспользоваться "хаком", который я опишу ниже, подобная операция может быть довольно опасной, поэтому делайте данную операцию на свой страх и риск.
Также примите во внимание, что для выполнения операции нужно будет выключить сервер, что приведёт к остановке работы всех машин и служб на ней на время проведения.
Данное решение подходит для ESXi версий 5-6 и скорее всего для 7-8 тоже, я буду использовать версию 6.7 в качестве примера.
1. Для начала нужно будет подключить LiveCD ISO к выделенному серверу.
Прилагаю подробную инструкцию, как подключить свой образ ISO к выделенному серверу.
https://zomro.com/rus/blog/faq/234-kak-podkljuchit-svoj-obraz-iso-k-vydelennomu-serveru
Я буду использовать SystemRescueCD, который можно скачать здесь:
https://www.system-rescue.org/Download/
2. Теперь нужно найти файл на диске сервера, в котором хранится пароль пользователя root.
После того, как диск подключен, мы перезагрузили сервер и загрузились с LiveCD, нужно войти в консоль или терминал, в зависимости от Вашего выбора LiveCD.
В SystemRescueCD я выбрал первую опцию для загрузки Boot SystemRescueCD with default options,
после чего через некоторое время загрузилась консоль, в которой можно вводить команды:
3. Нужно найти раздел диска, на котором хранится конфигурация гипервизора и его загрузочные модули, для этого введём команду:
lsblk -lp
Вы должны увидеть подобную картину как на скриншоте ниже:
Таким разделом является раздел /dev/sda5 (Boot-bank 0)
Более подробно о структуре хранения данных гипервизора можно прочитать здесь:
4. Тепер примонтируем данный раздел в папку /mnt нашего LiveCD командой:
mount /dev/sda5 /mnt
5. Проверим, есть ли на этом разделе файл state.tgz
ls /mnt/state.tgz
Должно показать, что такой файл найден:
Тепер создадим временную папку, где будем производить распаковку и редактирование.
mkdir /new
Переходим в новосозданную папку:
cd /new
Распакуем архив в нее:
tar -xf /mnt/state.tgz -C /new/
Теперь в папке /new должен появиться еще один архив, распакуем и его:
tar -xf local.tgz
Если всё сделано правильно, то в папке должна быть папка etc и архив local.tgz как на скриншоте.
Архив local.tgz нам уже не нужен, его нужно удалить:
rm local.tgz
6. Тепер в папке etc ищем файл shadow и открываем его с помощью текстового редактора vim:
vi etc/shadow
О том , как пользоваться редактором vim, у нас есть прекрасная статья здесь:
https://zomro.com/rus/blog/faq/204-redaktor-vim
Внутри файла дожно быть что-то подобное как на скриншоте ниже, как видно напротив пользователя root есть длинный странный код,
это и есть наш пароль, он выглядит так, потому что он хранится в зашифрованном виде.
Мы можем удалить данный хеш код (всё, что находится между первыми двумя двоеточиями), что приведёт к тому, что у пользователя root не будет пароля, в результате получим следующее:
Если не хотите оставлять вход без пароля, то можно, к примеру, заменить данный хеш на другой:
$6$q6uSw7nb/XO9hwSx$VDecNPTdNHdgDIKnVEMZggB0ooLzjWX22IuCAPkr06tVELOHdCiHsh.MjpSxmxqC7XTHUl4bOWTv5cPNZ0cxi0
Это зашифрованный пароль: 1234VMesxi
После чего сохраняем файл (в редакторе vim нужно ввести :wq)
7. Теперь нам нужно запаковать это всё и вернуть архив туда, откуда мы его взяли, выполните следующие команды поочерёдно:
cd /new
tar -czf local.tgz etc
tar -czf state.tgz local.tgz
mv state.tgz /mnt/
chmod 755 /mnt/state.tgz
8. Теперь отсоединяем раздел диска /dev/sda5 командой:
umount /mnt
9. Перезагружаем систему, отключаем LiveCD от сервера и загружаемся с диска сервера.
reboot
10. При входе в панель ESXi через консоль, нажимаем кнопку F2 и теперь должно пустить без пароля, если ранее Вы удалили хеш в файле.
Если Вы заменили пароль на хеш, который написан выше, то нужно ввести пароль: 1234VMesxi
Далее ОБЯЗАТЕЛЬНО меняем пароль на новый! Для этого выбираем опцию Configure Password:
Оставляем поле Old Password пустым или вводим пароль 1234VMesxi, в зависимости от того, что было сделано ранее и затем вводим 2 раза новый пароль:
Пароль успешно изменен на новый и теперь можно входить в панель через веб-браузер.