Reimpostare la password dell'utente root in ESXi 7.x
⚠️ AVVISO IMPORTANTE DI COMPATIBILITÀ
Questo metodo per reimpostare la password di root dipende dalla versione di ESXi e non funziona su tutte le release.
Questo metodo funziona per:
- ESXi 6.0, 6.5, 6.7 (tutte le versioni)
- ESXi 7.0 (GA)
- ESXi 7.0 Update 1
- ESXi 7.0 Update 2
Questo metodo NON funziona per:
- ESXi 7.0 Update 3 e versioni successive (l'archivio di configurazione
local.tgzè crittografato ed è salvato comelocal.tgz.ve) - ESXi 8.0 e tutte le versioni successive
Motivo: A partire da ESXi 7.0 Update 3, VMware ha introdotto la crittografia degli archivi di configurazione, rendendo impossibile la modifica diretta del file /etc/shadow tramite LiveCD.
Per le versioni crittografate (7.0 U3+, 8.0+) utilizzare metodi alternativi:
- Utilizzo di
crypto-utilsu un altro host ESXi (richiede la creazione di una VM ESXi annidata) - Ripristino tramite Host Profiles (richiede vCenter)
- Reinstallazione di ESXi mantenendo i datastore VMFS (ultima opzione)
Verificare la versione di ESXi prima di procedere.
A volte, per un motivo o per un altro, potrebbe non essere possibile autenticarsi alla console di gestione ESXi perché non si dispone di una password aggiornata. Ciò può essere dovuto a un attacco al sistema, un crash del sistema, una password persa o al fatto che si è ereditato ESXi senza documentazione o controlli amministrativi adeguati. È una situazione spiacevole e bisognerà fare qualcosa al riguardo. Forse non immediatamente, ma quando qualcosa va storto e si ha bisogno di intervenire su un sistema che fino ad ora ha funzionato normalmente. Questa istruzione è stata scritta per questi casi.
Esistono diversi modi per reimpostare la password. Tuttavia, quello descritto in questo articolo è universale e funzionerà non solo per le versioni 7.x ma anche per quelle precedenti. È stato testato nella pratica e funziona nella maggior parte dei casi. Iniziamo.
Prerequisiti
Per prima cosa dobbiamo avviare da qualsiasi Live CD. Può essere un'immagine di installazione di Ubuntu o, come nel nostro caso, Finnix. Si tratta di una distribuzione basata su Debian con ampie capacità di diagnostica e ripristino di emergenza.
Dopo l'avvio, verrà visualizzato il prompt della console:

Nel caso in cui il server si trovi in remoto e si sia connessi ad esso tramite IP-KVM, lavorare in questa modalità non è molto comodo a causa dell'elevato tempo di risposta della console. Per evitare ciò, è possibile configurare un server SSH. Se questo non è un problema, è possibile saltare questo passaggio.
# impostare la password root per il sistema live passwd # avviare il server ssh service ssh start
È quindi possibile connettersi al server utilizzando il proprio client SSH preferito o dalla console:
ssh root@1.2.3.4
Trovare la partizione ESXi
Ora dobbiamo determinare quale disco contiene la partizione di cui abbiamo bisogno. Per farlo, determiniamo prima quali dischi abbiamo.
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
Il nostro principale criterio di ricerca è una partizione disco da 250 MB. Come possiamo vedere, il disco nvme0n1 contiene tale partizione. Esaminiamola più da vicino:
fdisk -l /dev/nvme0n1

Il nostro obiettivo è la partizione che inizia al settore 8224 e ha una dimensione di 250 MB. Questa è la partizione che contiene i dati di cui abbiamo bisogno.
Estrarre i file di configurazione
Per continuare, creiamo 2 directory: una per il montaggio del disco e un'altra per i dati che dobbiamo modificare.
mkdir /mnt/vmware && mkdir /tmp/vmware
Montare la partizione trovata
mount /dev/nvme0n1p5 /mnt/vmware
All'interno c'è molto materiale, ma abbiamo bisogno di un file specifico

Deve essere decompresso nella directory creata in precedenza
tar -xf /mnt/vmware/state.tgz -C /tmp/vmware/ tar -xf /tmp/vmware/local.tgz -C /tmp/vmware/ rm /tmp/vmware/local.tgz
Ora, se andiamo in /tmp/vmware/ e ne esaminiamo il contenuto, troveremo la nota directory etc.
Modificare il file Shadow
Successivamente dobbiamo modificare il file shadow e rimuovere l'hash della password root. In questo modo ESXi penserà che la password dell'utente sia vuota dopo la nostra manipolazione.
nano /tmp/vmware/etc/shadow
Questo deve essere fatto con attenzione. È necessario eliminare il contenuto tra i primi due punti

e dovrebbe apparire così

Ripristinare e riavviare
Salvare il file con il tasto F3. Questa è la parte più importante completata. Successivamente è necessario impacchettare tutto e rimettere il file dove lo si è trovato.
cd /tmp/vmware/ tar -czf local.tgz etc tar -czf state.tgz local.tgz mv state.tgz /mnt/vmware/
Smontare l'unità ESXi e riavviare.
umount /mnt/vmware/ reboot
Dopo il riavvio, accedere all'interfaccia web di ESXi come utente root con una password vuota e cambiarla con quella necessaria utilizzando i mezzi standard tramite il menu in alto a destra.
Possibili problemi e soluzioni
- Errore di montaggio della partizione: Assicurarsi di aver specificato il percorso corretto del disco di sistema. Eseguire
lsblkper visualizzare la struttura delle partizioni. - File Shadow mancante: Verificare la correttezza del percorso
/tmp/etc/shadow. Assicurarsi che gli archivistate.tgzelocal.tgzsiano stati decompressi correttamente. - Password non reimpostata: Verificare che le modifiche siano state salvate e che i file siano stati ricostruiti correttamente e spostati nella posizione originale.
Ecco fatto! L'obiettivo è raggiunto! Si consiglia di salvare la nuova password e di non perderla mai più!