310 votes

Réinitialiser le mot de passe dans Ubuntu / Linux Bash dans Windows

J'ai installé Linux Bash sur Windows 10 (disponible chez 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 le démarrage du système, comme accéder au mode de récupération, mais cela ne fonctionnera pas dans ce cas car cet Ubuntu est juste une application au sein d'un système Windows et n'a pas son propre processus de démarrage.

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

471voto

Tmu Points 4827
  • Exécutez 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 (sinon la commande suivante échouera).
  • Dans l'invite de commandes administrateur de 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 changé en ubuntu1804, donc

ubuntu1804 config --default-user root
  • Maintenant, Bash sur Ubuntu sur Windows vous connecte en tant que root sans demander de mot de passe

  • Utilisez la commande passwd dans Bash pour changer le mot de passe de l'utilisateur (celui dont vous voulez réinitialiser le mot de passe):

    passwd votre_nom_d'utilisateur
  • Changez l'utilisateur par défaut pour votre utilisateur normal dans l'invite de commandes Windows

    ubuntu config --default-user  votre_nom_d'utilisateur

Si vous utilisez Ubuntu 18.04 dans WSL, la commande a changé en ubuntu1804, donc

ubuntu1804 config --default-user votre_nom_d'utilisateur

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.

Note 2: Si vous utilisez toujours le sous-système Ubuntu d'origine fourni avec la mise à jour Anniversaire, utilisez la commande lxrun. Il est recommandé de passer à la version de sous-système distribuée via Microsoft Store.)

121voto

Nobody Points 1562

Microsoft a une bonne page d'aide sur ce sujet : Documentation utilisateur WSL.

Dans Windows PowerShell (Super+X, i), vous pouvez vous connecter au compte root d'Ubuntu avec

wsl --user root

Ensuite, changez le mot de passe comme vous le feriez normalement, c'est-à-dire pour l'utilisateur actuel (qui est root) avec

passwd

ou pour un autre utilisateur avec

passwd nom_utilisateur

qui vous demande de manière interactive un nouveau mot de passe (deux fois). Les privilèges administratifs de Windows ne sont pas requis.

Si vous avez plus d'une distribution installée dans WSL, vous pouvez lister les noms des distributions installées avec

wsl -l

puis utilisez le nom de la distribution pour spécifier dans quelle distribution vous souhaitez vous connecter, par exemple pour vous connecter à Ubuntu 20.04 :

wsl -d Ubuntu-20.04 --user root

73voto

Vladimir Jirasek Points 839

Le précédent n'a pas fonctionné. Même après avoir changé l'utilisateur par défaut, Bash s'ouvrait toujours avec mon utilisateur.

Alors j'ai fait ceci, qui a fonctionné:

  1. Éditez ce fichier (dans notepad ou notepad++) :

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

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

    et supprimez simplement la partie du hash (partie ci-dessous)

    $jsdjksadgfhsdf.saflsdf.sadf.safd

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

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

  4. Redémarrez Bash à nouveau with les privilèges root et définissez votre mot de passe

    sudo bash
    passwd 

    Vous pouvez maintenant définir un nouveau mot de passe sans avoir à entrer l'ancien.

28voto

Richard Szalay Points 381

Modifier Cela ne fonctionne plus si vous avez une distribution installée du magasin WSL.

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)

# Réinitialise le mot de passe pour l'utilisateur bash par défaut LXSS / WSL
$lxssUsername = (Get-ItemProperty HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss).DefaultUsername
lxrun /setdefaultuser root
bash -c "passwd $lxssUsername"
lxrun /setdefaultuser $lxssUsername

5voto

pghtech Points 281

J'ai dû réinitialiser mon mot de passe sur mon Windows 10, j'ai WLS 1

1- Vérifiez le nom de votre linux/ubuntu en listant le dossier:

%userprofile%\AppData\Local\Microsoft\WindowsApps

Dans mon cas, j'ai trouvé Ubuntu1604.exe, donc je vais utiliser ubuntu1604 comme nom pour l'étape suivante. list files in: %userprofile%\AppData\Local\Microsoft\WindowsApps

2- Ouvrez CMD en tant qu'administrateur et exécutez (vous n'obtiendrez rien en retour):

ubuntu1604 config --default-user root

3- Lancez votre WSL, vérifiez que vous disposez des privilèges root ou exécutez whoami (vous devez être root) et changez votre mot de passe avec:

passwd [votre-nom-d'utilisateur-linux]

4- Fermez votre WSL et retournez à la fenêtre CMD et rétablissez votre nom d'utilisateur linux par défaut:

ubuntu1604 config --default-user [votre-nom-d'utilisateur-linux]

5- Redémarrez votre WSL/Ubuntu/AnotherLinux, vérifiez et profitez.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X