Redefina a senha no Ubuntu / Linux Bash no Windows


191

Instalei o Linux Bash no Windows 10 (disponível na Microsoft), mas esqueci minha senha.

Procurei uma solução, mas só encontro sugestões que envolvam fazer algo antes do sistema inicializar, como acessar o modo de recuperação, mas que não funcionará nesse caso, pois este Ubuntu é apenas um aplicativo dentro de um sistema Windows e não possui seu próprio processo de inicialização.

Como redefinir minha senha?


4
Qual senha você perdeu exatamente? A senha da sua conta do Windows?
— David Foerster

um exemplo de "opção de inicialização" seria inicializar no modo de usuário único, configurando o cmdline do kernel como "único" via grub. Para aqueles curiosos.
— kevinf

11
No WSL2 (Windows 10 v1903), foi alterado. No cmd ou no powershell, inicie um shell do ubuntu como root: wsl -user root Então: passwd <seu nome de usuário>. saída wsl. Da próxima vez que o ubuntu shel for aberto: o sudo ls aceitará uma nova senha root.
— jdh 9/07

Respostas:


323
  • Execute bashe anote seu nome de usuário do Linux (isso não precisa corresponder ao seu nome de usuário do Windows), consulte Como posso descobrir meu nome de usuário?
  • Feche o Bash no Ubuntu se estiver em execução (ou o próximo comando falhará).
  • No prompt de comando do Windows admin ( Super+ X, A) , altere o usuário padrão para root:

    ubuntu config --default-user root
    

Se você estiver usando o Ubuntu 18.04 na WSL, o comando foi alterado para ubuntu1804, então

ubuntu1804 config --default-user root
  • Agora o Bash no Ubuntu no Windows efetua login como root sem pedir senha
  • Use o passwdcomando no Bash para alterar a senha do usuário (o usuário cuja senha você deseja redefinir):

    passwd your_username
    
  • Mude o usuário padrão de volta para o usuário normal no prompt de comando do Windows

    ubuntu config --default-user  your_username
    

Se você estiver usando o Ubuntu 18.04 na WSL, o comando foi alterado para ubuntu1804, então

ubuntu1804 config --default-user your_username

Assista ao vídeo completo para recuperar sua senha Windows Subsystem Linux https://youtu.be/dTR232yvDCE

Nota 1: O subsistema usado no vídeo não é o Ubuntu, mas o Kali Linux. Daí a diferença no comando.

Nota 2: Se você ainda estiver usando o subsistema Ubuntu original que acompanha a Atualização de Aniversário, use o comando lxrun . É recomendável atualizar para a versão do subsistema distribuída via Microsoft Store.)


7
lxruné para a versão beta do WSL. Se você instalar o ubuntu a partir da loja de aplicativos, o comando é ubuntu config --default-user root.
— Endy Tjahjono

2
Sim, esta é uma forma alternativa, mas eu tenho o erro: Failed to set default user to: root.
— Kirby

2
@ Kirby: você deve sair do shell WSL antes de executar o comando no prompt de comando do Windows.
— 22418 dr01

11
Como eu continuava recebendo Error: 0x80070057 The parameter is incorrect, acabei seguindo a sugestão de @ dr01 e executei ubuntuno PowerShell; depois logout, configurei o usuário padrão novamente. 👍 #
— skia.heliou

2
Se você instalou o ubuntu 18.04 no WSL, o comando é em ubuntu1804vez de ubuntu. Espero que isso economize alguns coçar a cabeça.
— Indominus

53

O acima não funcionou. Mesmo depois de alterar o usuário padrão, o Bash sempre era aberto com meu usuário.

Então, em vez disso, fiz isso, que funcionou:

  1. Edite este arquivo (no bloco de notas ou no bloco de notas ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. Encontre seu usuário normal, por exemplo:

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

    e simplesmente remova a parte do hash (parte abaixo)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    você verá um hash diferente - espero :), por isso deve se parecer com:

    user1::17299:0:99999:7:::
    
  3. Salve o arquivo

  4. Inicie o Bash novamente com privilégios de root e defina sua senha

     sudo bash
     passwd <your-user-name> 
    

    Agora você pode definir uma nova senha sem precisar digitar a senha anterior.


9
isso funciona, mas o diretório oficial agora é semelhante a% localappdata% \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ etc \ shadow
— Mauro Destro

11
Esta é a melhor resposta de longe . Para encontrar o caminho para o seu shadowarquivo, você pode usar esta abominação do PowerShell: Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Forceque é uma versão incrivelmente detalhada da find /mnt/c/ -name shadowexecução e dos resultados. Não há necessidade de privilégios elevados para editar o arquivo, mas verifique se a janela do bash está fechada antes de fazê-lo.
— Russ

11
Este é o vencedor! Funcionou muito bem quando a primeira resposta não.
— Kim

11
A resposta aceita me deu 'Erro: 0x80070057 O parâmetro está incorreto.'. (e não, o console não estava no modo legado). Isso funcionou perfeitamente;
— Cristi Diaconescu

11
Esta resposta funcionou exatamente como descrito acima. A primeira resposta não funcionou para mim.
— Shanemeister 20/02

27

Editar Isso não funcionará mais se você tiver uma distribuição de WSL instalada na loja.

Para adicionar à resposta de Tmu, aqui está um script do Powershell ( gist ) que automatiza o processo (incluindo a detecção automática do nome de usuário padrão atual)

# 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

obtendo erro: 0 x 8 0 0 7 0 0 0 2 no powershell
— Nitin Sawant

1

A partir de 2019-09-05, existe um processo muito mais simples do que as respostas existentes (que geralmente são tão desatualizadas que nem funcionam).

No prompt de comando do Windows admin ( Super+ X, A) , você pode fazer login na conta raiz do Ubuntu com

wsl --user root

Em seguida, altere a senha como faria normalmente, com

passwd

que solicita interativamente uma nova senha (duas vezes).


0

Para aqueles que perderam a senha de root, o que funcionou para mim foi a atualização para o Ubuntu 18.04 LTS através da Windows Store. Observe que a Windows Store possui duas opções distintas:

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

Para verificar sua versão atual, execute o seguinte como qualquer usuário:

No prompt de comando, digite:

cat /etc/*release

Você deve ver uma linha na saída que diz:

DISTRIB_RELEASE=16.01

Se você vir isso, atualize definitivamente para o 18.04 , e ele solicitará que você crie novas credenciais UNIX.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.