Setel ulang kata sandi di Ubuntu / Linux Bash di Windows

191

Saya telah menginstal Linux Bash pada Windows 10 (tersedia dari Microsoft), tetapi saya lupa kata sandi saya.

Saya telah mencari solusi tetapi saya hanya menemukan saran yang melibatkan melakukan sesuatu sebelum sistem melakukan boot, seperti mengakses mode pemulihan, tetapi itu tidak akan berfungsi dalam kasus ini karena Ubuntu ini hanya sebuah aplikasi dalam sistem Windows dan tidak memiliki proses bootnya sendiri.

Bagaimana saya mengatur ulang kata sandi saya?

Maheedhar KV
sumber
4
Kata sandi mana yang Anda kehilangan sebenarnya? Kata sandi akun Windows Anda?
David Foerster
contoh "opsi booting" adalah boot ke mode pengguna tunggal dengan mengatur cmdline kernel untuk "tunggal" melalui grub. Bagi yang penasaran.
kevinf
1
Dalam WSL2 (windows 10 v1903) berubah. Dari cmd atau PowerShell, jalankan shell ubuntu sebagai root: wsl -user root Lalu: passwd <nama pengguna Anda>. keluar dari wsl. Lain kali ubuntu shel terbuka: sudo ls akan menerima kata sandi root baru.
jdh

Jawaban:

323
  • Jalankan bashdan catat nama pengguna Linux Anda (ini tidak harus cocok dengan nama pengguna Windows Anda), lihat Bagaimana saya bisa mengetahui nama pengguna saya?
  • Tutup Bash di Ubuntu jika sedang berjalan (atau perintah berikutnya akan gagal).
  • Di Windows admin command prompt ( Super+ X, A) ubah pengguna default untuk me-root:

    ubuntu config --default-user root
    

Jika Anda menggunakan Ubuntu 18.04 di WSL, perintahnya telah berubah menjadi ubuntu1804, jadi

ubuntu1804 config --default-user root
  • Sekarang Bash di Ubuntu pada Windows mencatat Anda sebagai root tanpa meminta kata sandi
  • Gunakan passwdperintah di Bash untuk mengubah kata sandi pengguna (pengguna yang kata sandinya ingin Anda atur ulang):

    passwd your_username
    
  • Ubah kembali pengguna default ke pengguna normal Anda di command prompt Windows

    ubuntu config --default-user  your_username
    

Jika Anda menggunakan Ubuntu 18.04 di WSL, perintahnya telah berubah menjadi ubuntu1804, jadi

ubuntu1804 config --default-user your_username

Tonton Video Lengkap untuk Memulihkan Kata Sandi Anda Windows Subsystem Linux https://youtu.be/dTR232yvDCE

Catatan 1: Subsistem yang digunakan dalam video bukan Ubuntu, tetapi Kali Linux. Karena itu perbedaan dalam perintah.

Catatan 2: Jika Anda masih menggunakan subsistem Ubuntu asli yang datang dengan Pembaruan Peringatan, gunakan perintah lxrun . Dianjurkan untuk meningkatkan versi subsistem yang didistribusikan melalui Microsoft Store.)

Tmu
sumber
7
lxrunadalah untuk versi beta WSL. Jika Anda menginstal ubuntu dari app store, perintahnya adalah ubuntu config --default-user root.
Endy Tjahjono
2
Ya, ini adalah cara alternatif tapi aku punya kesalahan: Failed to set default user to: root.
Kirby
2
@ Kirby: Anda harus keluar dari shell WSL sebelum menjalankan perintah di prompt perintah Windows.
dr01
1
Saya terus mendapatkan Error: 0x80070057 The parameter is incorrect, jadi saya akhirnya mengikuti isyarat @ dr01 dan berlari ubuntudi PowerShell logout, lalu mengkonfigurasi pengguna default lagi. Sukses 👍
skia.heliou
2
Jika Anda menginstal ubuntu 18.04 di WSL, perintahnya ubuntu1804bukan ubuntu. Semoga ini menghemat beberapa goresan kepala.
Indominus
53

Di atas tidak bekerja. Bahkan setelah mengubah pengguna default, Bash selalu dibuka dengan pengguna saya.

Jadi alih-alih saya melakukan ini, yang berhasil:

  1. Edit file ini (dalam notepad atau notepad ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. Temukan pengguna normal Anda, misalnya:

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

    dan cukup hapus bagian hash (bagian bawah)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    Anda akan melihat hash yang berbeda - saya harap :) jadi akan terlihat seperti:

    user1::17299:0:99999:7:::
    
  3. Simpan file

  4. Mulai Bash lagi dengan hak akses root dan atur kata sandi Anda

     sudo bash
     passwd <your-user-name> 
    

    Anda sekarang dapat menetapkan kata sandi baru tanpa harus memasukkan yang sebelumnya.

Vladimir Jirasek
sumber
9
ini berfungsi tetapi direktori resmi sekarang mirip dengan% localappdata% \ Packages \ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ etc \ shadow
Mauro Destro
11
Ini adalah jawaban terbaik sejauh ini . Untuk menemukan path ke shadowfile Anda, Anda dapat menggunakan kekejian PowerShell ini: Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Forceyang merupakan versi gila-gilaan find /mnt/c/ -name shadowdalam eksekusi dan hasil. Tidak perlu hak tinggi untuk mengedit file, tetapi pastikan jendela bash Anda ditutup sebelum Anda melakukannya.
Russ
1
Ini pemenangnya! Bekerja dengan baik ketika jawaban pertama tidak.
Kim
1
Jawaban yang diterima membuat saya 'Kesalahan: 0x80070057 Parameter tidak benar.'. (dan tidak, konsol tidak dalam mode lama). Ini bekerja dengan mulus;
Cristi Diaconescu
1
Jawaban ini bekerja persis seperti yang dijelaskan di atas. Jawaban pertama tidak berhasil untuk saya.
Shanemeister
27

Sunting Ini tidak lagi berfungsi jika Anda memiliki distribusi WSL yang terpasang di toko.

Untuk menambahkan jawaban Tmu, inilah skrip Powershell ( inti ) yang mengotomatiskan proses (termasuk secara otomatis mendeteksi nama pengguna default saat ini)

# 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
Richard Szalay
sumber
mendapatkan E rror: 0 x 8 0 0 7 0 0 0 2 di powershell
Nitin Sawant
1

Pada 2019-09-05 ada proses yang jauh lebih sederhana daripada jawaban yang ada (yang kebanyakan sudah usang mereka tidak bekerja sama sekali).

Di Windows admin command prompt ( Super+ X, A) Anda dapat masuk ke akun root Ubuntu dengan

wsl --user root

Kemudian ubah kata sandi seperti biasa, dengan

passwd

yang secara interaktif meminta kata sandi baru (dua kali).

Tak seorangpun
sumber
0

Bagi Anda yang kehilangan kata sandi root, yang berhasil bagi saya, memperbarui ke Ubuntu 18.04 LTS melalui Windows Store. Catatan, toko windows memiliki dua opsi berbeda:

  1. Ubuntu
  2. Ubuntu 18.04 LTS ( Pilih yang ini )

Untuk memeriksa versi Anda saat ini, jalankan yang berikut ini sebagai pengguna mana saja:

Pada prompt perintah, masukkan:

cat /etc/*release

Anda akan melihat garis di output yang mengatakan:

DISTRIB_RELEASE=16.01

Jika Anda melihatnya, maka pasti perbarui ke 18.04 , dan itu akan meminta Anda untuk membuat kredensial UNIX baru.

Janac Meena
sumber