Ponastavitev gesla korenskega uporabnika v ESXi 7.x
⚠️ POMEMBNO OBVESTILO O ZDRUŽLJIVOSTI
Ta metoda ponastavitve gesla root je odvisna od različice ESXi in ni podprta v vseh izdajah.
Podprte različice:
- ESXi 6.0, 6.5, 6.7 (vse gradnje)
- ESXi 7.0 (GA)
- ESXi 7.0 Update 1
- ESXi 7.0 Update 2
Ne podprto:
- ESXi 7.0 Update 3 in kasnejše (arhiv konfiguracije
local.tgzje šifriran in shranjen kotlocal.tgz.ve) - ESXi 8.0 in kasnejše različice
Razlog: Od ESXi 7.0 Update 3 je VMware uvedel šifriranje arhivov konfiguracije, kar preprečuje neposredno spreminjanje datoteke /etc/shadow prek LiveCD.
Za šifrirane različice (7.0 U3+, 8.0+), uporabite alternativne metode:
- Uporaba
crypto-utilna drugem gostitelju ESXi (zahteva ustvarjanje vgnezdenega VM ESXi) - Obnovitev prek Host Profiles (zahteva vCenter)
- Ponovna namestitev ESXi ob ohranitvi shramb VMFS (zadnja možnost)
Pred nadaljevanjem preverite nameščeno različico ESXi.
Včasih se iz tega ali onega razloga ne morete avtentificirati v konzoli za upravljanje ESXi, ker nimate posodobljenega gesla. To je lahko posledica vdora v sistem, okvare sistema, izgubljenega gesla ali če ste podedovali ESXi brez dokumentacije ali ustreznih administrativnih kontrol. To je neprijetna situacija in z njo bo treba nekaj narediti. Morda ne takoj, ampak ko gre kaj narobe in morate posredovati v sistemu, ki je do zdaj deloval normalno. Ta navodila so napisana prav za takšne primere.
Obstaja več načinov za ponastavitev gesla. Vendar je tisti, opisan v tem članku, univerzalen in bo deloval ne samo za različice 7.x, ampak tudi za starejše. Preizkušen je bil v praksi in deluje v večini primerov. Torej, začnimo.
Predpogoji
Najprej moramo zagnati sistem s katerega koli Live CD-ja. Lahko je namestitvena slika Ubuntu ali, kot v našem primeru, Finnix. To je distribucija, ki temelji na Debianu, z obsežnimi zmogljivostmi diagnostike in obnovitve po katastrofi.
Po zagonu boste videli poziv konzole:

Če se vaš strežnik nahaja na oddaljeni lokaciji in ste nanj povezani prek IP-KVM, delo v tem načinu ni zelo priročno zaradi dolgega odzivnega časa konzole. Da bi se temu izognili, lahko nastavite strežnik SSH. Če to ni težava, lahko ta korak preskočite.
# nastavimo geslo root za živi sistem passwd # zaženemo strežnik ssh service ssh start
Nato se lahko povežete s strežnikom z uporabo svojega priljubljenega odjemalca SSH ali iz konzole:
ssh root@1.2.3.4
Iskanje particije ESXi
Zdaj moramo ugotoviti, kateri disk vsebuje particijo, ki jo potrebujemo. Za to najprej ugotovimo, katere diske imamo.
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 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
Naše glavno iskalno merilo je particija diska velikosti 250 MB. Kot vidimo, disk nvme0n1 vsebuje takšno particijo, poglejmo jo pobliže:
fdisk -l /dev/nvme0n1

Naš cilj je particija, ki se začne pri sektorju 8224 in je velika 250 MB. To je particija, ki vsebuje podatke, ki jih potrebujemo.
Ekstrakcija konfiguracijskih datotek
Za nadaljevanje ustvarimo 2 imenika: enega za priklapljanje diska in drugega za podatke, ki jih moramo urediti.
mkdir /mnt/vmware && mkdir /tmp/vmware
Priklopimo najdeno particijo
mount /dev/nvme0n1p5 /mnt/vmware
Znotraj je veliko stvari, vendar potrebujemo določeno datoteko

Razpakirati jo je treba v prej ustvarjen imenik
tar -xf /mnt/vmware/state.tgz -C /tmp/vmware/ tar -xf /tmp/vmware/local.tgz -C /tmp/vmware/ rm /tmp/vmware/local.tgz
Zdaj, če gremo v /tmp/vmware/ in pregledamo njegovo vsebino, bomo tam našli znani imenik etc.
Urejanje datoteke Shadow
Nato moramo urediti datoteko shadow in iz nje odstraniti zgoščeno vrednost gesla root. Tako bo ESXi po naši manipulaciji mislil, da je uporabniško geslo prazno.
nano /tmp/vmware/etc/shadow
To je treba narediti previdno. Potrebno je izbrisati vsebino med prvim in drugim dvopičjem

in izgledati mora tako

Obnovitev in ponovni zagon
Shranite datoteko s tipko F3. S tem je najpomembnejši del končan. Nato morate vse zapakirali in dati nazaj tja, kjer ste to našli.
cd /tmp/vmware/ tar -czf local.tgz etc tar -czf state.tgz local.tgz mv state.tgz /mnt/vmware/
Odklopimo pogon ESXi in znova zaženemo sistem.
umount /mnt/vmware/ reboot
Po ponovnem zagonu se prijavite v spletni vmesnik ESXi kot uporabnik root s praznim geslom in ga spremenite v tistega, ki ga potrebujemo, s standardnimi sredstvi prek menija zgoraj desno.
Možne težave in rešitve
- Napaka pri priklapljanju particije: Prepričajte se, da ste navedli pravilno pot do sistemskega diska. Zaženite
lsblkza prikaz strukture particij. - Datoteka Shadow manjka: Preverite pravilnost poti
/tmp/etc/shadow. Prepričajte se, da sta bila arhivastate.tgzinlocal.tgzuspešno razpakirana. - Geslo ni bilo ponastavljeno: Preverite, ali so bile spremembe shranjene in ali so bile datoteke uspešno obnovljene in premaknjene na prvotno mesto.
To je to! Cilj je dosežen! Priporočamo, da shranite novo geslo in ga nikoli več ne izgubite!