Đặt lại mật khẩu trong Ubuntu / Linux Bash trong Windows


191

Tôi đã cài đặt Linux Bash trên Windows 10 (có sẵn từ Microsoft), nhưng tôi đã quên mật khẩu của mình.

Tôi đã tìm kiếm một giải pháp nhưng tôi chỉ tìm thấy các đề xuất liên quan đến việc làm gì đó trước khi hệ thống khởi động, như truy cập chế độ khôi phục, nhưng điều đó sẽ không hoạt động trong trường hợp này vì Ubuntu này chỉ là một ứng dụng trong hệ thống Windows và không có quá trình khởi động riêng của nó.

Làm cách nào để đặt lại mật khẩu?


4
Mật khẩu nào bạn đã mất chính xác? Mật khẩu tài khoản Windows của bạn?
David Foerster

một ví dụ "tùy chọn khởi động" sẽ là khởi động sang chế độ người dùng đơn bằng cách đặt cmdline kernel thành "đơn" thông qua grub. Dành cho những người tò mò.
kevinf

1
Trong WSL2 (windows 10 v1903), nó đã thay đổi. Từ cmd hoặc powershell, hãy khởi động shell ubfox dưới dạng root: wsl -user root Sau đó: passwd <tên người dùng của bạn>. thoát wsl. Lần tới ub Ubuntu sẽ mở: sudo ls sẽ chấp nhận mật khẩu root mới.
JDH

Câu trả lời:


323
  • Chạy bashvà ghi chú tên người dùng Linux của bạn (cái này không cần phải khớp với tên người dùng Windows của bạn), xem Làm thế nào tôi có thể tìm ra tên người dùng của mình?
  • Đóng Bash trên Ubuntu nếu nó đang chạy (hoặc lệnh tiếp theo sẽ thất bại).
  • Trong dấu nhắc lệnh quản trị viên Windows ( Super+ X, A) thay đổi người dùng mặc định thành root:

    ubuntu config --default-user root
    

Nếu bạn đang sử dụng Ubuntu 18.04 trong WSL, lệnh đã thay đổi thành ubuntu1804, vì vậy

ubuntu1804 config --default-user root
  • Bây giờ Bash trên Ubuntu trên Windows đăng nhập bạn với quyền root mà không cần hỏi mật khẩu
  • Sử dụng passwdlệnh trong Bash để thay đổi mật khẩu người dùng (người dùng có mật khẩu bạn muốn đặt lại):

    passwd your_username
    
  • Thay đổi người dùng mặc định trở lại người dùng bình thường của bạn trong dấu nhắc lệnh của Windows

    ubuntu config --default-user  your_username
    

Nếu bạn đang sử dụng Ubuntu 18.04 trong WSL, lệnh đã thay đổi thành ubuntu1804, vì vậy

ubuntu1804 config --default-user your_username

Xem video đầy đủ để khôi phục mật khẩu của bạn Windows Hệ thống con Linux https://youtu.be/dTR232yvDCE

Lưu ý 1: Hệ thống con được sử dụng trong video không phải là Ubuntu mà là Kali Linux. Do đó sự khác biệt trong lệnh.

Lưu ý 2: Nếu bạn vẫn đang sử dụng hệ thống con Ubuntu gốc đi kèm với Bản cập nhật kỷ niệm, hãy sử dụng lệnh lxrun . Nên nâng cấp lên phiên bản hệ thống con được phân phối qua Microsoft Store.)


7
lxrundành cho phiên bản beta của WSL. Nếu bạn cài đặt Ubuntu từ cửa hàng ứng dụng, lệnh là ubuntu config --default-user root.
Endy Tjahjono

2
Vâng, đây là một cách khác nhưng tôi đã gặp lỗi : Failed to set default user to: root.
Kirby

2
@Kirby: bạn phải đăng xuất khỏi trình bao WSL trước khi chạy lệnh trong dấu nhắc lệnh của Windows.
dr01

1
Tôi tiếp tục nhận được Error: 0x80070057 The parameter is incorrect, vì vậy tôi đã kết thúc theo gợi ý của @ dr01 và chạy ubuntutrong PowerShell, sau đó logout, sau đó định cấu hình lại người dùng mặc định. Thành công
skia.heliou

2
Nếu bạn đã cài đặt Ubuntu 18.04 trên WSL, lệnh sẽ ubuntu1804thay thế ubuntu. Hy vọng điều này sẽ tiết kiệm một số gãi đầu.
Indominus

53

Ở trên không hoạt động. Ngay cả sau khi thay đổi người dùng mặc định, Bash luôn mở với người dùng của tôi.

Vì vậy, thay vì tôi đã làm điều này, mà đã làm việc:

  1. Chỉnh sửa tệp này (trong notepad hoặc notepad ++):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. Tìm người dùng bình thường của bạn, ví dụ:

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

    và chỉ cần loại bỏ phần băm (phần bên dưới)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    bạn sẽ thấy một hàm băm khác - tôi hy vọng :) vì vậy nó sẽ giống như:

    user1::17299:0:99999:7:::
    
  3. Lưu các tập tin

  4. Bắt đầu Bash một lần nữa với quyền root và đặt mật khẩu của bạn

     sudo bash
     passwd <your-user-name> 
    

    Bây giờ bạn có thể đặt mật khẩu mới mà không cần phải nhập mật khẩu trước đó.


9
điều này hoạt động nhưng thư mục chính thức hiện tương tự như% localappdata% \ Gói \ CanonicalgroupLrict.UbfoxonWindows_79rhkp1fndgsc \ LocalState \ rootfs \ etc \ Shadow
Mauro Destro

11
Đây là câu trả lời tốt nhất cho đến nay . Để tìm đường dẫn đến shadowtệp của bạn, bạn có thể sử dụng mã gớm ghiếc PowerShell này: Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Forceđây là phiên bản dài dòng điên rồ find /mnt/c/ -name shadowtrong cả thực thi và kết quả. Không cần đặc quyền nâng cao để chỉnh sửa tệp, nhưng hãy đảm bảo cửa sổ bash của bạn được đóng trước khi bạn thực hiện.
Nga

1
Đây là người chiến thắng! Làm việc tuyệt vời khi câu trả lời đầu tiên không.
Kim

1
Câu trả lời được chấp nhận đã cho tôi 'Lỗi: 0x80070057 Tham số không chính xác.'. (và không, giao diện điều khiển không ở chế độ cũ). Điều này làm việc liền mạch;
Cristi Diaconescu

1
Câu trả lời này hoạt động chính xác như đã nêu ở trên. Câu trả lời đầu tiên không làm việc cho tôi.
Shanemeister

27

Chỉnh sửa Điều này không còn hoạt động nếu bạn có bản phân phối WSL được cài đặt tại cửa hàng.

Để thêm vào câu trả lời của Tmu, đây là tập lệnh Powershell ( ý chính ) tự động hóa quy trình (bao gồm tự động phát hiện tên người dùng mặc định hiện tại)

# 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

nhận E rror: 0 x 8 0 0 7 0 0 0 2 trong powershell
Nitin Sawant

1

Kể từ 2019-09-05, có một quy trình đơn giản hơn nhiều so với các câu trả lời hiện có (hầu hết đã quá lỗi thời, chúng hoàn toàn không hoạt động).

Trong dấu nhắc lệnh quản trị viên Windows ( Super+ X, A) , bạn có thể đăng nhập vào tài khoản root Ubuntu bằng

wsl --user root

Sau đó thay đổi mật khẩu như bạn thường làm, với

passwd

tương tác yêu cầu bạn nhập mật khẩu mới (hai lần).


0

Đối với những người mất mật khẩu gốc, điều làm việc cho tôi, là cập nhật lên Ubuntu 18.04 LTS thông qua Windows Store. Lưu ý, cửa hàng windows có hai tùy chọn riêng biệt:

  1. Ubuntu
  2. Ubuntu 18.04 LTS ( Chọn cái này )

Để kiểm tra phiên bản hiện tại của bạn, hãy chạy như sau với bất kỳ người dùng nào:

Tại dấu nhắc lệnh, nhập:

cat /etc/*release

Bạn sẽ thấy một dòng trong đầu ra có nội dung:

DISTRIB_RELEASE=16.01

Nếu bạn thấy rằng, sau đó chắc chắn nâng cấp lên 18,04 , và nó sẽ nhắc bạn tạo chứng chỉ UNIX mới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.