Mengubah direktori home pengguna pada Windows Subsystem untuk Linux

26

Saya ingin mengubah direktori home pengguna yang awalnya saya setup pada Windows Subsystem untuk Linux. Saya menemukan perintah ini

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

Yang seharusnya memungkinkan ini, namun saya mendapatkan kesalahan ini

usermod: user alex is currently used by process 2

Mungkin karena saya masuk sebagai pengguna itu. Saya sudah mencoba melakukan root dengan melakukan sudo su -dan kemudian menjalankan perintah lagi tetapi saya mendapatkan masalah yang sama. Saya mencoba perintah yang saya temukan di Google untuk keluar dari pengguna alextetapi itu juga membuat saya keluar dari bash sepenuhnya.

Adakah pikiran?

Xeon06
sumber
Tidak bisakah Anda keluar dari akun itu, masuk sebagai akun lain, dan kemudian jalankan perintah untuk melihat hasil apa yang Anda dapatkan?
Pimp Juice,
Keluar dari akun itu akan menutup Linux bash dan membuat Anda kembali ke Windows prompt. Masuk kembali hanya menempatkan Anda secara default di pengguna itu. Dan beralih ke root melalui sudo su -saya masih mendapatkan kesalahan proses
Xeon06
Saya mengerti, saya berasumsi Anda tidak dapat masuk ke Windows sebagai akun lain saat keluar dari akun itu, dan kemudian jalankan perintah bash lalu dari akun tersebut di bash untuk akun lainnya? Saya belum menyiapkan bash di Windows namun hanya memikirkan solusi sederhana yang potensial meskipun harus melakukan itu akan menjadi tidak nyaman tetapi jika itu hanya satu kali kesepakatan maka dilakukan, mungkin itu akan berhasil. Hanya pikiran cepat saja.
Pimp Juice,
Sayangnya lingkungan bash terkait dengan pengguna Windows saat ini, disimpan dalam% appdata%. Jadi pengguna lain akan mendapatkan lingkungan bash mereka sendiri
Xeon06
Anda dapat mengubah nama pengguna default dengan mengeksekusi di Windows (bukan bash) lxrun /setdefaultuser myusername.
harrymc

Jawaban:

41

Mengubah direktori home dengan WSL dilakukan dengan cara yang sama seperti di Linux:

  1. Masukkan bash
  2. Ketikkan perintah sudo vim /etc/passwd
  3. Temukan baris akun Anda, yang mungkin terlihat seperti:
    harry:x:1000:1000:"",,,:/home/harry:/bin/bash
  4. Ubah direktori home, yang di atas /home/harry, ke direktori baru, menggunakan notasi WSL
  5. Simpan file
  6. Keluar dari bash dan luncurkan kembali
  7. Untuk menguji, gunakan perintah:
    cd ~
    pwd

Beri tahu saya jika Anda membutuhkan informasi lebih lanjut.

harrymc
sumber
Saya tidak tahu WSL, saya hanya ingin tahu: secara umum apakah aman hanya vim /etc/passwd? Di Linux kami memiliki vipwterutama untuk pekerjaan itu.
Kamil Maciorowski
@ KamilMaciorowski: Saya baru saja mulai dengan WSL, tetapi saya dapat mengatakan bahwa sudo /usr/sbin/vipwtidak persis sama dengan poin saya 2 di atas. Mengubah /etc/passwdsama amannya dengan melakukannya di Linux. Mungkin lebih aman karena menghancurkannya tidak mempengaruhi Windows logon.
harrymc
Terima kasih! Saya tidak tahu mengapa satu-satunya cara saya dapat menemukan untuk mengedit ini adalah melalui usermod.
Xeon06
4
Hati-hati dengan ini - jika Anda keluar dari filesystem linux palsu utama, Anda akan menemukan Anda tidak dapat mengedit izin file dengan benar.
Hippyjim
@ Hippyjim Saya menghadapi masalah yang sama dan mengetahui bahwa SO anwser ini dapat membantu (memerlukan Win 10 Insider Build 17063 ke atas).
Akhir pekan
1

Anda dapat mencoba menjalankan lxrun /setdefaultuser rootcommand prompt, lalu mengubah direktori, lalu mengubah pengguna default menjadi Alex.

Joshua Merrill
sumber