การเปลี่ยนโฮมไดเร็กทอรีของผู้ใช้บน Windows Subsystem สำหรับ Linux


26

ฉันต้องการเปลี่ยนโฮมไดเร็กตอรี่ของผู้ใช้ที่ฉันเริ่มต้นติดตั้งบนระบบย่อย Windows สำหรับ Linux ฉันพบคำสั่งนี้

sudo usermod -d /mnt/c/Users/Alex alex

ซึ่งควรอนุญาตสิ่งนี้ แต่ฉันได้รับข้อผิดพลาดนี้

usermod: user alex is currently used by process 2

น่าจะเป็นเพราะฉันเข้าสู่ระบบในฐานะผู้ใช้รายนั้น ฉันพยายามที่จะรูทโดยทำsudo su -แล้วเรียกใช้คำสั่งอีกครั้ง แต่ฉันได้รับปัญหาเดียวกัน ฉันลองใช้คำสั่งที่พบบน Google เพื่อออกจากระบบผู้ใช้alexจากรูท แต่นั่นก็ทำให้ฉันไม่ได้ทุบตีเลย

ความคิดใด ๆ


คุณไม่สามารถออกจากระบบบัญชีนั้นลงชื่อเข้าใช้เป็นบัญชีอื่นแล้วเรียกใช้คำสั่งเพื่อดูผลลัพธ์ที่คุณได้รับ
Pimp Juice IT

การออกจากระบบของบัญชีนั้นจะเป็นการปิดลีนุกซ์และนำคุณกลับไปที่พรอมต์ของ Windows การลงชื่อเข้าใช้ใหม่จะทำให้คุณเป็นผู้ใช้โดยค่าเริ่มต้น และการเปลี่ยนเป็นรูทผ่านsudo su -ฉันยังคงได้รับข้อผิดพลาดของกระบวนการ
Xeon06

ฉันเห็นฉันคิดว่าคุณไม่สามารถเข้าสู่ระบบ Windows เป็นบัญชีอื่นในขณะที่ออกจากระบบจากนั้นเรียกใช้คำสั่ง bash จากนั้นบัญชีนั้นในทุบตีสำหรับบัญชีอื่น ๆ ? ฉันไม่ได้ติดตั้งทุบตีใน Windows แต่เพียงแค่คิดถึงวิธีแก้ปัญหาที่ง่าย ๆ ที่อาจเกิดขึ้นแม้ว่าจะต้องทำเช่นนั้นจะไม่สะดวก แต่ถ้าเป็นเพียงแค่การจัดการครั้งเดียวเสร็จแล้วอาจจะใช้งานได้ คิดอย่างรวดเร็วเพียงว่า
Pimp Juice IT

น่าเสียดายที่สภาพแวดล้อมของ bash นั้นผูกติดอยู่กับ Windows ผู้ใช้ปัจจุบันที่เก็บไว้ใน% appdata% ดังนั้นผู้ใช้รายอื่นจะได้รับสภาพแวดล้อมการทุบตีของตัวเอง
Xeon06

คุณสามารถเปลี่ยนชื่อผู้ใช้เริ่มต้นโดยการดำเนินการใน Windows lxrun /setdefaultuser myusername(ไม่ทุบตี)
harrymc

คำตอบ:


41

การเปลี่ยนโฮมไดเร็กทอรีด้วย WSL ทำได้เช่นเดียวกับใน Linux:

  1. ใส่ทุบตี
  2. พิมพ์คำสั่ง sudo vim /etc/passwd
  3. ค้นหาบรรทัดบัญชีของคุณซึ่งอาจมีลักษณะดังนี้:
    harry:x:1000:1000:"",,,:/home/harry:/bin/bash
  4. เปลี่ยนโฮมไดเร็กตอรี่, ซึ่งด้านบนคือ/home/harry, ไปยังไดเร็กตอรี่ใหม่, โดยใช้สัญกรณ์ WSL
  5. บันทึกไฟล์
  6. ออกจาก bash แล้วเปิดใหม่อีกครั้ง
  7. เพื่อทดสอบใช้คำสั่ง:
    cd ~
    pwd

แจ้งให้เราทราบหากคุณต้องการข้อมูลเพิ่มเติม


ฉันไม่รู้จัก WSL ฉันแค่อยากรู้: โดยทั่วไปแล้วจะปลอดภัยvim /etc/passwdหรือไม่ ในลีนุกซ์เรามีvipwงานเป็นพิเศษ
Kamil Maciorowski

@ KamilMaciorowski: ฉันเพิ่งเริ่มต้นกับ WSL แต่ฉันสามารถพูดได้ว่าsudo /usr/sbin/vipwทำเช่นเดียวกับจุด 2 ของฉันข้างต้น การเปลี่ยนแปลง/etc/passwdมีความปลอดภัยเท่ากับการใช้งานบน Linux อาจปลอดภัยกว่าเพราะการทำลายนั้นไม่มีผลกับการเข้าสู่ระบบ Windows
harrymc

ขอขอบคุณ! usermodผมไม่ทราบว่าทำไมวิธีเดียวที่ฉันสามารถหาการแก้ไขนี้ก็ผ่าน
Xeon06

4
ระวังสิ่งนี้ - ถ้าคุณย้ายออกจากระบบไฟล์ linux ปลอมหลักคุณจะพบว่าคุณไม่สามารถแก้ไขการอนุญาตไฟล์ได้อย่างถูกต้อง
Hippyjim

@Hippyjim ฉันกำลังเผชิญกับปัญหาเดียวกันและพบว่าดังนั้น anwserนี้สามารถช่วยได้ (ต้องการ Win 10 Insider Build 17063 ขึ้นไป)
วันหยุดสุดสัปดาห์

1

คุณสามารถลองเรียกใช้lxrun /setdefaultuser rootคำสั่งจากนั้นเปลี่ยนไดเรกทอรีจากนั้นเปลี่ยนผู้ใช้เริ่มต้นเป็น Alex

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.