Ändern des Basisverzeichnisses des Benutzers auf dem Windows-Subsystem für Linux

26

Ich möchte das Basisverzeichnis des Benutzers ändern, den ich ursprünglich auf dem Windows-Subsystem für Linux eingerichtet habe. Ich habe diesen Befehl gefunden

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

Was dies erlauben sollte, jedoch erhalte ich diesen Fehler

usermod: user alex is currently used by process 2

Vermutlich, weil ich als dieser Benutzer angemeldet bin. Ich habe versucht, root zu werden, indem ich sudo su -den Befehl ausgeführt habe, aber ich bekomme das gleiche Problem. Ich habe einen Befehl ausprobiert, den ich bei Google gefunden habe, um den Benutzer alexvon root abzumelden, aber das hat mich auch völlig aus der Bash herausgeworfen.

Irgendwelche Gedanken?

Xeon06
quelle
Können Sie sich nicht von diesem Konto abmelden, sich als ein anderes Konto anmelden und dann die Befehle ausführen, um zu sehen, welches Ergebnis Sie erhalten?
Pimp Juice IT
Wenn Sie sich von diesem Konto abmelden, wird Linux bash geschlossen und Sie kehren zur Windows-Eingabeaufforderung zurück. Wenn Sie sich erneut anmelden, werden Sie standardmäßig in diesen Benutzer versetzt. Und der Wechsel zu root durch sudo su -Ich bekomme immer noch den Prozessfehler
Xeon06
Ich sehe, ich nehme an, Sie können sich nicht als ein anderes Konto bei Windows anmelden, während Sie von diesem abgemeldet sind, und dann den Befehl bash von diesem Konto in bash für das andere Konto ausführen. Ich habe Bash noch nicht in Windows eingerichtet, also denke ich nur an mögliche einfache Lösungen, obwohl dies unpraktisch wäre, aber wenn es nur ein einmaliger Deal ist, dann würde es vielleicht funktionieren. Nur schnelle Gedanken.
Pimp Juice IT
Leider ist die Bash-Umgebung an den aktuellen Benutzer Windows gebunden, der in% appdata% gespeichert ist. So erhält ein anderer Benutzer seine eigene Bash-Umgebung
Xeon06
Sie können den Standardbenutzernamen ändern, indem Sie ihn unter Windows ausführen (nicht bash) lxrun /setdefaultuser myusername.
Harrymc

Antworten:

41

Das Ändern des Home-Verzeichnisses mit WSL erfolgt auf die gleiche Weise wie unter Linux:

  1. Geben Sie bash ein
  2. Geben Sie den Befehl ein sudo vim /etc/passwd
  3. Suchen Sie die Zeile Ihres Kontos, die folgendermaßen aussehen könnte:
    harry:x:1000:1000:"",,,:/home/harry:/bin/bash
  4. Ändern Sie das Ausgangsverzeichnis (siehe oben) /home/harrymithilfe der WSL-Notation in das neue Verzeichnis
  5. Speicher die Datei
  6. Beenden Sie bash und starten Sie es neu
  7. Verwenden Sie zum Testen die folgenden Befehle:
    cd ~
    pwd

Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Harrymc
quelle
Ich kenne die WSL nicht, ich bin nur neugierig: Ist es im Allgemeinen sicher, einfach zu sein vim /etc/passwd? In Linux haben wir vipwspeziell für den Job.
Kamil Maciorowski
@KamilMaciorowski: Ich habe gerade mit der WSL angefangen, aber ich kann sagen, dass sudo /usr/sbin/vipwdies genau dasselbe wie mein Punkt 2 oben macht. Das Ändern /etc/passwdist so sicher wie unter Linux. Möglicherweise sicherer, da das Zerstören die Windows-Anmeldung nicht beeinträchtigt.
Harrymc
Vielen Dank! Ich weiß nicht, warum der einzige Weg, den ich finden konnte, um dies zu bearbeiten, durch war usermod.
Xeon06
4
Gehen Sie dabei vorsichtig vor - wenn Sie das Hauptdateisystem von Fake Linux verlassen, werden Sie feststellen, dass Sie die Dateiberechtigungen nicht richtig bearbeiten können.
Hippyjim
@ Hippyjim Ich stehe vor dem gleichen Problem und finde heraus, dass diese SO-Antwort helfen könnte (erfordert Win 10 Insider Build 17063 und höher).
Wochenende vom
1

Sie können versuchen, lxrun /setdefaultuser rootin der Eingabeaufforderung auszuführen, dann das Verzeichnis ändern und den Standardbenutzer in Alex ändern.

Joshua Merrill
quelle