Réinitialiser le mot de passe de l'utilisateur root dans ESXi 7.x
Il arrive que, pour une raison ou une autre, vous ne puissiez pas vous authentifier sur la console de gestion ESXi parce que vous n'avez pas de mot de passe à jour. Cela peut être dû à un piratage du système, à une panne du système, à la perte du mot de passe, ou si vous avez hérité d'ESXi sans documentation ni contrôles administratifs appropriés. Il s'agit d'une situation désagréable et il faudra faire quelque chose pour y remédier. Peut-être pas immédiatement, mais lorsque quelque chose ne va pas et que vous devez intervenir sur un système qui fonctionnait normalement jusqu'à présent. Cette instruction a été rédigée pour de tels cas.
Il existe plusieurs façons de réinitialiser le mot de passe. Cependant, celle présentée dans cet article est universelle et fonctionnera non seulement pour les versions 7.x, mais aussi pour les versions antérieures. Elle a été testée en pratique et fonctionne dans la plupart des cas. Commençons donc.
Tout d'abord, nous devons démarrer à partir d'un Live CD. Il peut s'agir d'une image d'installation d'Ubuntu ou, comme dans notre cas, de Finnix . Il s'agit d'une distribution basée sur Debian avec des capacités étendues de diagnostic et de reprise après sinistre.
Après le démarrage, vous verrez apparaître une console :

Si votre serveur est situé à distance et que vous y êtes connecté via IP-KVM, il n'est pas très pratique de travailler dans ce mode en raison du temps de réponse élevé de la console. Pour éviter cela, vous pouvez mettre en place un serveur ssh. Si cela ne pose pas de problème, vous pouvez sauter cette étape.
# set the root password for the live system passwd # bring up the ssh server service ssh star
Vous pouvez alors vous connecter au serveur à l'aide de votre client ssh favori ou à partir de la console :
ssh root@1.2.3.4
Nous devons maintenant déterminer quel disque contient la partition dont nous avons besoin. Pour ce faire, commençons par déterminer les disques dont nous disposons.
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
Notre principal critère de recherche est une partition de disque de 250 Mo. Comme nous pouvons le constater, le disque nvme0n1 contient une telle partition, regardons-la de plus près :
fdisk -l /dev/nvme0n1

Notre cible est la partition qui commence au secteur 8224 et qui fait 250 Mo. C'est la partition qui contient les données dont nous avons besoin
Pour continuer, créons 2 répertoires, l'un pour monter le disque et l'autre pour les données que nous devons éditer.
mkdir /mnt/vmware && mkdir /tmp/vmware
Monter la partition trouvée
mount /dev/nvme0n1p5 /mnt/vmware
Il y a beaucoup de choses à l'intérieur, mais nous avons besoin d'un fichier spécifique

Il doit être décompressé dans le répertoire créé précédemment.
tar -xf /mnt/vmware/state.tgz -C /tmp/vmware/ tar -xf /tmp/vmware/local.tgz -C /tmp/vmware/ rm /tmp/vmware/local.tgz
Maintenant, si nous allons dans /tmp/vmware/ et regardons son contenu, nous y trouverons le répertoire familier etc.
Ensuite, nous devons éditer le fichier shadow et supprimer le hachage du mot de passe root. Ainsi, ESXi pensera que le mot de passe de l'utilisateur est vide après notre manipulation.
nano /tmp/vmware/etc/shadow
Cela doit être fait avec précaution. Il est nécessaire de supprimer le contenu entre le premier et le deuxième deux-points

et le fichier doit ressembler à ceci

Sauvegardez le fichier avec la touche F3. Ceci complète la partie la plus importante. Ensuite, vous devez tout emballer et remettre les choses à leur place.
cd /tmp/vmware/ tar -czf local.tgz etc tar -czf state.tgz local.tgz mv state.tgz /mnt/vmware/
Démontez le lecteur ESXi et redémarrez.
umount /mnt/vmware/ reboot
Après le redémarrage, connectez-vous à l'interface web ESXi en tant qu'utilisateur root avec un mot de passe vide et changez-le pour celui dont nous avons besoin en utilisant les moyens standard via le menu en haut à droite.
Problèmes potentiels et solutions :
- Erreur de montage de partition : Assurez-vous que vous avez spécifié le chemin d'accès correct au disque système. Exécutez
lsblkpour afficher la structure des partitions. - Fichier fantôme manquant : Vérifiez que le chemin
/tmp/etc/shadowest correct. Assurez-vous que les archivesstate.tgzetlocal.tgzont été décompressées avec succès. - Le mot de passe n'a pas été réinitialisé : Vérifiez que les modifications ont été enregistrées et que les fichiers ont été reconstruits et déplacés vers leur emplacement d'origine.
Le tour est joué ! L'objectif est atteint ! Nous vous recommandons d'enregistrer votre nouveau mot de passe et de ne plus jamais le perdre !