ปัญหาคือ ฉันไม่สามารถรับข้อความแจ้งเริ่มต้นกลับให้ป้อนชื่อผู้ใช้และรหัสผ่าน ซึ่งจากสิ่งที่ฉันเข้าใจคือวิธีการสร้างผู้ใช้ใหม่อย่างถูกต้องสำหรับอินสแตนซ์ WSL Ubuntu เสมือน
ถูกต้อง. การสร้างผู้ใช้เริ่มต้นจะเสร็จสิ้นเมื่อปฏิบัติการแจกจ่าย (ไฟล์ .exe
ที่ติดตั้งจาก Microsoft Store) ถูกเรียกใช้งานเป็นครั้งแรก ในกรณีของ Ubuntu นั้นโดยทั่วไปแล้ว ubuntu.exe
แม้ว่าอาจแตกต่างกันไปขึ้นอยู่กับว่าคุณติดตั้ง "เวอร์ชันที่มีชื่อ" ใน Store หรือไม่ (เช่น Ubuntu 20.04 โดยเฉพาะ) ที่กล่าวว่าเป็นไปได้ทั้งหมดที่จะสร้างผู้ใช้เริ่มต้นด้วยตนเอง (ดูด้านล่าง)
เริ่มต้นด้วย wsl -l -v
เพื่อดูว่าชื่อการแจกจ่ายคืออะไร ส่วนใหญ่จะเป็นเพียง "Ubuntu" แต่แก้ไขคำสั่งด้านล่างหากแตกต่างออกไป
ปุ่ม "ง่าย"
เป็นไปได้ที่จะกลับไปสู่สถานะ "การกำหนดค่า" เริ่มต้น โดยมีข้อสันนิษฐานใหญ่และข้อแม้ในการทำเช่นนั้น จะลบข้อมูล/การกำหนดค่าทั้งหมดในอินสแตนซ์ (ระบบไฟล์เสมือน ฯลฯ) คำสั่งนั้นคือ wsl --unregister อูบุนตู
.
หลังจากทำเช่นนั้น คุณควรจะสามารถเรียกใช้ "Ubuntu" อีกครั้งจากเมนู Start และการกระจายจะถูกสร้างขึ้นใหม่ จากนั้นระบบจะขอชื่อผู้ใช้/รหัสผ่านเริ่มต้นจากคุณ
ทำงานเป็นรูทโดยไม่ต้องใช้ ซูโด
เคล็ดลับง่ายๆ ที่คุณอาจพบว่ามีประโยชน์คือ WSL สามารถเริ่มต้นกับผู้ใช้ที่มีอยู่ รวมถึง ราก
โดยไม่จำเป็นต้องใช้รหัสผ่าน:
wsl ~ -u รูต
wsl ~ -u เฟร็ด
แม้ว่าในตอนแรกคุณอาจรู้สึกตื่นตระหนกกับความสามารถในการรันรูทโดยไม่ต้องใช้รหัสผ่าน แต่โปรดจำไว้ว่าแม้ในฐานะรูท สิทธิ์ของคุณใน WSL จะไม่มีวันเกินสิทธิ์ของผู้ใช้ Windows ที่กล่าวว่าโปรด ไม่เคย ทำเช่นนี้.
แถบด้านข้าง: คำถามของคุณ
ก่อนอื่น เพื่อตอบคำถามของคุณ:
บัญชีควรเป็นบัญชีระบบ และควรใช้ชื่อที่กำหนดโดย Ubuntu หรือไม่
ไม่แน่ใจว่าคุณหมายถึงอะไรที่นี่ แต่ฉันเชื่อว่าคำตอบคือ "ไม่" ผู้ใช้เริ่มต้นสามารถตั้งชื่ออะไรก็ได้ที่คุณต้องการ ฉันแนะนำให้ใช้ชื่อผู้ใช้ที่คุณต้องการตามปกติเพื่อความสะดวก
บัญชีควรมีโฮมไดเร็กตอรี่หรือไม่?
ใช่ และโฮมไดเร็กทอรีนั้นควรอยู่ในนั้น /บ้าน
, ไม่ บนไดรฟ์ที่ติดตั้ง Windows (เช่น /mnt/ค
).
sudo-group admin:sudo เป็นกลุ่มเดียวที่ต้องเพิ่มบัญชีผู้ดูแลระบบระดับความปลอดภัยสูงสุด (หรือที่เรียกว่า Sudo-account) ฉันควรสร้างกลุ่มอื่นที่มีชื่อเดียวกันกับบัญชีผู้ดูแลระบบที่ฉันสร้างหรือไม่
วิธีการเริ่มต้นของ Ubuntu (ทั้ง "pure Linux" และ "WSL") คือการสร้างกลุ่มที่มีชื่อเดียวกับชื่อผู้ใช้ ในขณะที่อาจจะไม่ ที่จำเป็นฉันจะถือว่าเป็น "แนวทางปฏิบัติที่ดีที่สุด"
สร้างผู้ใช้ WSL "เริ่มต้น" ใหม่โดยไม่ต้องติดตั้งใหม่
เท่าที่ฉันสามารถบอกได้ สิ่งต่อไปนี้จะสร้างผู้ใช้เริ่มต้นด้วยการตั้งค่าเดียวกันกับที่ตัวติดตั้ง/การกำหนดค่าสต็อกทำ จากภายใน Ubuntu:
useradd --create-home --user-group --groups adm,dialout,cdrom,floppy,sudo,audio,dip,video,plugdev,netdev --password "encryptedPassword" ชื่อผู้ใช้
แน่นอนการปรับเปลี่ยน ชื่อผู้ใช้
เพื่อเป็นอะไรก็ได้ที่คุณต้องการ เนื่องจากคุณรันในฐานะรูทอยู่แล้ว จึงไม่จำเป็นต้องใช้ ซูโด
หรือเล่ห์เหลี่ยมใด ๆ ที่นั่น แต่ผู้อ่านคนอื่น ๆ ที่ไม่มีกรณีการใช้งานของ OP อาจต้องการ ซูโด
หรือ wsl -u รูต
(ตามเอกสารใน คำตอบนี้).
แน่นอนว่ากลุ่มเหล่านี้ส่วนใหญ่อาจไม่จำเป็นอย่างยิ่งภายใต้ WSL แต่ใครจะรู้ - แอพบางตัวอาจคาดหวังจากบางส่วน และดีกว่าปลอดภัยกว่าขออภัย อีกครั้ง นี่คือรายการกลุ่ม "สต็อก" ที่จัดเตรียมไว้สำหรับผู้ใช้เมื่อสร้างโดยตัวกำหนดค่า Ubuntu/WSL
ดู ที่นี่ สำหรับวิธีการสร้างรหัสผ่านที่เข้ารหัส โดยเฉพาะ (แม้ว่าจะไม่ได้ทดสอบเป็นการส่วนตัวสำหรับบรรทัดคำสั่งนี้):
useradd --create-home --user-group --groups adm,dialout,cdrom,floppy,sudo,audio,dip,video,plugdev,netdev --password $(read -sp รหัสผ่าน: pw ; echo $pw | openssl รหัสผ่าน -1 -stdin) ชื่อผู้ใช้
การตั้งค่าผู้ใช้ WSL เริ่มต้น
"ปกติ" โปรแกรมติดตั้ง distro WSL (เช่น ubuntu.exe
) แก้ไข Windows Registry ด้วยชื่อผู้ใช้เริ่มต้นสำหรับ distro ฉันขอแนะนำวิธีการที่ใหม่กว่า ในฐานะรูท ให้สร้างไฟล์ /etc/wsl.conf
โดยมีเนื้อหาดังนี้
[ผู้ใช้]
ค่าเริ่มต้น = ชื่อผู้ใช้
แน่นอนอีกครั้งแทนที่ของคุณ ชื่อผู้ใช้
.
สำหรับเทคนิคทางเลือก โปรดดูที่ คำถามนี้ และคำตอบที่หลากหลาย
ขั้นตอนต่อไปที่แนะนำ
โดยส่วนตัวแล้วฉันขอแนะนำให้สำรองสำเนาการแจกจ่ายของคุณที่ "พร้อมใช้งาน" ในขั้นตอนนี้ อีกครั้งจาก PowerShell:
wsl --export Ubuntu "2021-08-26 เริ่มต้น Ubuntu 20.04.tar"
หากคุณต้องการหมุนอินสแตนซ์ WSL ทิ้งเพื่อทดสอบบางอย่างโดยไม่ต้องแก้ไข "ไดรเวอร์รายวัน" คุณสามารถทำได้ง่ายๆ wsl -- นำเข้า
การกระจายนี้ (เรียกอีกอย่างว่า "Ubuntu") จากนั้นทิ้งมันไป wsl -- ยกเลิกการลงทะเบียน
.