Zmiana katalogu domowego użytkownika w podsystemie Windows dla systemu Linux

26

Chciałbym zmienić katalog domowy użytkownika, który początkowo konfigurowałem w Podsystemie Windows dla systemu Linux. Znalazłem to polecenie

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

Co powinno na to pozwolić, jednak pojawia się ten błąd

usermod: user alex is currently used by process 2

Prawdopodobnie dlatego, że jestem zalogowany jako ten użytkownik. Próbowałem zrootować, wykonując sudo su -i ponownie uruchamiając polecenie, ale mam ten sam problem. Próbowałem znaleźć polecenie znalezione w Google, aby wylogować użytkownika alexz roota, ale całkowicie mnie to wyrzuciło.

jakieś pomysły?

Xeon06
źródło
Czy nie możesz się wylogować z tego konta, zalogować jako inne konto, a następnie uruchomić polecenia, aby zobaczyć, jaki wynik uzyskasz?
Pimp Juice IT,
Wylogowanie z tego konta powoduje zamknięcie systemu Linux i powrót do monitu systemu Windows. Ponowne zalogowanie się po prostu domyślnie wprowadza tego użytkownika. I przechodząc do sudo su -
rootowania,
Rozumiem, zakładam, że nie możesz zalogować się do systemu Windows jako inne konto podczas wylogowania z tego konta, a następnie uruchomić polecenie bash z tego konta w bash dla drugiego konta? Nie skonfigurowałem jeszcze basha w systemie Windows, więc samo myślenie o potencjalnych prostych rozwiązaniach, choć byłoby to trochę niewygodne, ale jeśli jest to jednorazowa umowa, to może się uda. Tylko szybkie myśli.
Pimp Juice IT,
Niestety środowisko bash jest powiązane z bieżącym użytkownikiem systemu Windows, przechowywane w% appdata%. Tak więc inny użytkownik otrzyma własne środowisko bash
Xeon06,
Możesz zmienić domyślną nazwę użytkownika, wykonując w systemie Windows (nie bash) lxrun /setdefaultuser myusername.
harrymc

Odpowiedzi:

41

Zmiana katalogu domowego za pomocą WSL odbywa się w taki sam sposób, jak w Linuksie:

  1. Wpisz bash
  2. Wpisz polecenie sudo vim /etc/passwd
  3. Znajdź linię swojego konta, która może wyglądać następująco:
    harry:x:1000:1000:"",,,:/home/harry:/bin/bash
  4. Zmień katalog domowy, który jest powyżej /home/harry, na nowy katalog, używając notacji WSL
  5. Zapisz plik
  6. Wyjdź z bash i uruchom go ponownie
  7. Aby przetestować, użyj poleceń:
    cd ~
    pwd

Daj mi znać, jeśli potrzebujesz więcej informacji.

harrymc
źródło
Nie znam WSL, jestem po prostu ciekawy: czy ogólnie jest to bezpieczne vim /etc/passwd? W Linuksie mamy vipwspecjalnie do tego zadania.
Kamil Maciorowski
@KamilMaciorowski: Właśnie zacząłem od WSL, ale mogę powiedzieć, że sudo /usr/sbin/vipwrobi dokładnie to samo, co w punkcie 2 powyżej. Zmiana /etc/passwdjest tak samo bezpieczna, jak w Linuksie. Być może bezpieczniejsze, ponieważ zniszczenie go nie wpływa na logowanie do systemu Windows.
harrymc
Dziękuję Ci! Nie wiem, dlaczego jedynym sposobem, w jaki mogłem to edytować, było przejście usermod.
Xeon06,
4
Uważaj na to - jeśli wyjdziesz z głównego fałszywego systemu plików linux, okaże się, że nie możesz poprawnie edytować uprawnień do plików.
Hippyjim
@Hippyjim Stoję przed tym samym problemem i dowiaduję się, że ta odpowiedź SO może pomóc (wymaga Win 10 Insider Build 17063 i nowszych).
Weekend
1

Możesz spróbować uruchomić lxrun /setdefaultuser rootw wierszu polecenia, a następnie zmienić katalog, a następnie zmienić domyślnego użytkownika na Alex.

Joshua Merrill
źródło