Question Réinitialiser le mot de passe dans Linux Bash sous Windows


J'ai installé Linux Bash sur Windows 10 (qui est disponible dans la mise à jour récente de Microsoft), mais cela fait longtemps que j'ai oublié mon mot de passe maintenant.

J'ai vérifié de nombreux sites Web et tout ce qui est dit est de passer par l'option de démarrage où cela ne fonctionnera pas dans ce cas, car il s'agit du système Windows.

Comment puis-je réinitialiser mon mot de passe?


132
2018-05-13 22:19


origine


Quel mot de passe avez-vous perdu exactement? Votre mot de passe de compte Windows? - David Foerster
un exemple "option de démarrage" serait de démarrer en mode mono-utilisateur en définissant kernel cmdline sur "single" via grub. Pour les curieux. - kevinf


Réponses:


  • Courir bash et notez votre nom d'utilisateur Linux (cela ne doit pas correspondre à votre nom d'utilisateur Windows), voir Comment puis-je trouver mon nom d'utilisateur?
  • Fermez Bash sur Ubuntu s'il est en cours d'exécution (ou la prochaine commande échouera).
  • Dans l'invite de commande de l'administrateur Windows (Super+X, UNE) changer l'utilisateur par défaut en root:

    ubuntu config --default-user root
    

Si vous utilisez Ubuntu 18.04 dans WSL, la commande a changé pour ubuntu1804 , alors

ubuntu1804 config --default-user root
  • Maintenant, Bash sur Ubuntu sur Windows vous connecte en tant que root sans demander de mot de passe
  • Utilisation passwd commande dans Bash pour changer le mot de passe de l'utilisateur (l'utilisateur dont vous voulez réinitialiser le mot de passe):

    passwd your_username
    
  • Modifier l'utilisateur par défaut à 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 changé pour ubuntu1804 , alors

ubuntu1804 config --default-user your_username

Regardez la vidéo complète pour récupérer votre mot de passe Windows Subsystem Linux https://youtu.be/dTR232yvDCE 

Note 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 de sous-système distribuée via Microsoft Store est recommandée.)


242
2017-08-05 10:02



lxrun est pour la version bêta de WSL. Si vous installez Ubuntu depuis l'App Store, la commande est ubuntu config --default-user root. - Endy Tjahjono
Ouais, c'est une alternative, mais j'ai eu l'erreur: Failed to set default user to: root. - Kirby
@Kirby: vous devez vous déconnecter du shell WSL avant d'exécuter la commande dans l'invite de commande Windows. - dr01
J'ai essayé "ubuntu config --default-user root", et j'ai reçu une erreur "ubuntu n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier batch" - Indominus
Je continuais à avoir Error: 0x80070057 The parameter is incorrect, alors j'ai fini par suivre le signal de @ dr01 et j'ai couru ubuntudans PowerShell, alors logout, puis configuré à nouveau l'utilisateur par défaut. Succès - skia.heliou


Ce qui précède n'a pas fonctionné. Même après avoir changé d'utilisateur par défaut, le bash est toujours ouvert avec mon utilisateur. Donc, à la place, cela a fonctionné:

  1. modifier le fichier (dans le bloc-notes ou le notepad ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. Trouvez votre utilisateur normal, par exemple:

    user1:$jsdjksadgfhsdf.saflsdf.sadf.safd:17299:0:99999:7:::
    

    et retirez simplement la partie hachée (ci-dessous)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    vous verrez un hash différent - j'espère :), devrait ressembler à ceci:

    user1::17299:0:99999:7:::
    
  3. Enregistrez le fichier

  4. recommencer
  5. sudo bash
  6. mot de passe Cela vous demandera votre nouveau mot de passe sans nécessiter le précédent.

27
2018-05-13 15:59



cela fonctionne mais le répertoire officiel est maintenant similaire à% localappdata% \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ etc \ shadow - Mauro Destro
C'est la meilleure réponse de loin. Pour trouver le chemin de votre shadow fichier que vous pouvez utiliser cette abomination PowerShell: Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Force qui est une version incroyablement verbeuse de find /mnt/c/ -name shadow dans l'exécution et les résultats. Pas besoin de privilèges élevés pour éditer le fichier, mais assurez-vous que votre fenêtre bash est fermée avant de le faire. - Russ
C'est le gagnant! Travaillé très bien quand la première réponse ne l'a pas fait. - Kim
La réponse acceptée m'a valu 'Erreur: 0x80070057 Le paramètre est incorrect.' (et non, la console n'était pas en mode hérité). Cela a fonctionné de manière transparente; - Cristi Diaconescu
essayer de trouver le lxss, mais il dit Windows can't find 'C:\Users\longnx\AppData\Local\lxss'. Check the spelling and try again. - Luke


Pour ajouter à la réponse de Tmu, voici un script Powershell (essentiel) 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

21
2018-06-06 23:52