Restablecer la contraseña en Ubuntu / Linux Bash en Windows


191

He instalado Linux Bash en Windows 10 (disponible de Microsoft), pero he olvidado mi contraseña.

He buscado una solución, pero solo encuentro sugerencias que implican hacer algo antes de que se inicie el sistema, como acceder al modo de recuperación, pero eso no funcionará en este caso, ya que Ubuntu es solo una aplicación dentro de un sistema Windows y no tiene Su propio proceso de arranque.

¿Cómo puedo restablecer mi contraseña?


44
¿Qué contraseña perdiste exactamente? ¿La contraseña de tu cuenta de Windows?
David Foerster

un ejemplo de "opción de arranque" sería arrancar en modo de usuario único configurando cmdline del núcleo en "single" a través de grub. Para los curiosos
kevinf

1
En WSL2 (Windows 10 v1903) ha cambiado. Desde cmd o powershell, inicie un shell de ubuntu como root: wsl -user root Luego: passwd <su nombre de usuario>. salida wsl. La próxima vez que se abre ubuntu shel: sudo ls aceptará una nueva contraseña de root.
jdh

Respuestas:


323
  • Ejecute bashy tome nota de su nombre de usuario de Linux (no es necesario que coincida con su nombre de usuario de Windows). Consulte ¿Cómo puedo encontrar mi nombre de usuario?
  • Cierre Bash en Ubuntu si se está ejecutando (o el siguiente comando fallará).
  • En el símbolo del sistema del administrador de Windows ( Super+ X, A) cambie el usuario predeterminado a root:

    ubuntu config --default-user root
    

Si está usando Ubuntu 18.04 en WSL, el comando ha cambiado a ubuntu1804, entonces

ubuntu1804 config --default-user root
  • Ahora Bash en Ubuntu en Windows te conecta como root sin pedir contraseña
  • Use el passwdcomando en Bash para cambiar la contraseña del usuario (el usuario cuya contraseña desea restablecer):

    passwd your_username
    
  • Vuelva a cambiar el usuario predeterminado a su usuario normal en el símbolo del sistema de Windows

    ubuntu config --default-user  your_username
    

Si está usando Ubuntu 18.04 en WSL, el comando ha cambiado a ubuntu1804, entonces

ubuntu1804 config --default-user your_username

Vea el video completo para recuperar su contraseña Subsistema de Windows Linux https://youtu.be/dTR232yvDCE

Nota 1: El subsistema utilizado en el video no es Ubuntu, sino Kali Linux. De ahí la diferencia en el comando.

Nota 2: Si todavía está usando el subsistema Ubuntu original que vino con la Actualización de aniversario, use el comando lxrun . Se recomienda actualizar a la versión del subsistema distribuida a través de Microsoft Store).


77
lxrunes para la versión beta de WSL. Si instala ubuntu desde la tienda de aplicaciones, el comando es ubuntu config --default-user root.
Endy Tjahjono

2
Sí, esta es una forma alternativa pero me dio el error: Failed to set default user to: root.
Kirby

2
@ Kirby: debe cerrar sesión en el shell WSL antes de ejecutar el comando en el símbolo del sistema de Windows.
dr01

1
Seguí obteniendo Error: 0x80070057 The parameter is incorrect, así que terminé siguiendo la señal de @ dr01 y corrí ubuntuen PowerShell logout, luego configuré el usuario predeterminado nuevamente. Éxito 👍
skia.heliou

2
Si instaló ubuntu 18.04 en WSL, el comando es en ubuntu1804lugar de ubuntu. Espero que esto ahorre un poco de rascarse la cabeza.
Indominus

53

Lo anterior no funcionó. Incluso después de cambiar el usuario predeterminado, Bash siempre se abrió con mi usuario.

Entonces, en cambio, hice esto, que funcionó:

  1. Edite este archivo (en el bloc de notas o el bloc de notas ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. Encuentra tu usuario normal, por ejemplo:

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

    y simplemente elimine la parte hash (parte inferior)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    verá un hash diferente, espero :) así que debería verse así:

    user1::17299:0:99999:7:::
    
  3. Guarda el archivo

  4. Inicie Bash nuevamente con privilegios de root y configure su contraseña

     sudo bash
     passwd <your-user-name> 
    

    Ahora puede establecer una nueva contraseña sin tener que ingresar la anterior.


99
esto funciona pero el directorio oficial ahora es similar a% localappdata% \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ etc \ shadow
Mauro Destro

11
Esta es la mejor respuesta con diferencia . Para encontrar la ruta a su shadowarchivo, puede usar esta abominación de PowerShell: Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Forceque es una versión increíblemente detallada find /mnt/c/ -name shadowtanto en la ejecución como en los resultados. No es necesario tener privilegios elevados para editar el archivo, pero asegúrese de que su ventana bash esté cerrada antes de hacerlo.
Russ

1
Este es el ganador! Funcionó muy bien cuando la primera respuesta no.
Kim

1
La respuesta aceptada me dio 'Error: 0x80070057 El parámetro es incorrecto'. (y no, la consola no estaba en modo heredado). Esto funcionó a la perfección;
Cristi Diaconescu

1
Esta respuesta funcionó exactamente como se describe anteriormente. La primera respuesta no me funcionó.
Shanemeister

27

Editar Esto ya no funciona si tiene una distribución de WSL instalada en la tienda.

Para agregar a la respuesta de Tmu, aquí hay un script de Powershell ( gist ) que automatiza el proceso (incluida la detección automática del nombre de usuario predeterminado actual)

# 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

obteniendo E rror: 0 x 8 0 0 7 0 0 0 2 en powershell
Nitin Sawant

1

A partir de 2019-09-05 hay un proceso que es mucho más simple que las respuestas existentes (que en su mayoría están tan desactualizadas que no funcionan en absoluto).

En el símbolo del sistema de administración de Windows ( Super+ X, A) puede iniciar sesión en la cuenta raíz de Ubuntu con

wsl --user root

Luego cambie la contraseña como lo haría normalmente, con

passwd

que interactivamente le pide una nueva contraseña (dos veces).


0

Para aquellos de ustedes que perdieron la contraseña de root, lo que funcionó para mí fue actualizar a Ubuntu 18.04 LTS a través de la Tienda Windows. Tenga en cuenta que la tienda de Windows tiene dos opciones distintas:

  1. Ubuntu
  2. Ubuntu 18.04 LTS ( Elija este )

Para verificar su versión actual, ejecute lo siguiente como cualquier usuario:

En el símbolo del sistema, ingrese:

cat /etc/*release

Debería ver una línea en la salida que dice:

DISTRIB_RELEASE=16.01

Si ve eso, definitivamente actualice a 18.04 , y le pedirá que cree nuevas credenciales UNIX.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.