J'ai installé Linux Bash sur Windows 10 (disponible auprès de Microsoft), mais j'ai oublié mon mot de passe.
J'ai cherché une solution, mais je ne trouve que des suggestions qui impliquent de faire quelque chose avant que le système ne démarre, comme accéder au mode de récupération, mais cela ne fonctionnera pas dans ce cas car Ubuntu n'est qu'une application dans un système Windows et n'a pas son propre processus de démarrage.
Comment puis-je réinitialiser mon mot de passe?
bash
et notez votre nom d'utilisateur Linux (il ne doit pas nécessairement correspondre à votre nom d'utilisateur Windows), voir Comment puis-je trouver mon nom d'utilisateur?Dans l'invite de commande d'administration Windows (Super+X, A) changez l'utilisateur par défaut en root:
ubuntu config --default-user root
Si vous utilisez Ubuntu 18.04 dans WSL, la commande a été changée en ubuntu1804
, donc
ubuntu1804 config --default-user root
Utilisez la commande passwd
dans Bash pour modifier le mot de passe de l'utilisateur (l'utilisateur dont vous souhaitez réinitialiser le mot de passe):
passwd your_username
Redéfinissez l'utilisateur par défaut sur votre utilisateur normal dans l'invite de commande Windows
ubuntu config --default-user your_username
Si vous utilisez Ubuntu 18.04 dans WSL, la commande a été changée en ubuntu1804
, donc
ubuntu1804 config --default-user your_username
Regardez la vidéo complète pour récupérer votre mot de passe Sous-système Windows Linux https://youtu.be/dTR232yvDCE
Remarque 1: le sous-système utilisé dans la vidéo n'est pas Ubuntu, mais Kali Linux. D'où la différence dans la commande.
Remarque 2: Si vous utilisez toujours le sous-système Ubuntu d'origine fourni avec la mise à jour d'anniversaire, utilisez la commande lxrun . La mise à niveau vers la version du sous-système distribuée via Microsoft Store est recommandée.)
Ce qui précède n'a pas fonctionné. Même après avoir changé d'utilisateur par défaut, Bash a toujours ouvert avec mon utilisateur.
Alors au lieu de cela, j'ai fait ceci, qui a fonctionné:
Editez ce fichier (dans Notepad ou Notepad ++):
%localappdata%\lxss\rootfs\etc\shadow
Trouvez votre utilisateur normal, par exemple:
user1:$jsdjksadgfhsdf.saflsdf.sadf.safd:17299:0:99999:7:::
et retirez simplement la partie de hachage (en dessous)
$jsdjksadgfhsdf.saflsdf.sadf.safd
vous verrez un hachage différent - j'espère :) il devrait donc ressembler à:
user1::17299:0:99999:7:::
Sauvegarder le fichier
Redémarrez Bash avec les privilèges root et définissez votre mot de passe
Sudo bash
passwd <your-user-name>
Vous pouvez maintenant définir un nouveau mot de passe sans avoir à entrer le précédent.
Pour ajouter à la réponse de Tmu, voici un script Powershell ( Gist ) qui automatise le processus (y compris la détection automatique du nom d'utilisateur par défaut actuel).
# Resets the password for the default LXSS / WSL bash user
$lxssUsername = (Get-ItemProperty HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss).DefaultUsername
lxrun /setdefaultuser root
bash -c "passwd $lxssUsername"
lxrun /setdefaultuser $lxssUsername
Pour ceux d'entre vous qui ont perdu le mot de passe root, ce qui a fonctionné pour moi a été la mise à jour vers Ubuntu 18.04 LTS via le Windows Store. Notez que le Windows Store a deux options distinctes:
Pour vérifier votre version actuelle, exécutez ce qui suit en tant qu'utilisateur:
cat /etc-*release
Vous devriez voir une ligne dans la sortie qui dit:
DISTRIB_RELEASE=16.01
Si vous voyez cela, mettez à jour définitivement vers 18.04 et vous serez invité à créer de nouvelles informations d'identification UNIX.