在 Linux 的 Windows 子系统上更改用户的主目录

Xeo*_*n06 44 windows-subsystem-for-linux

我想更改最初在适用于 Linux 的 Windows 子系统上设置的用户的主目录。我找到了这个命令

sudo usermod -d /mnt/c/Users/Alex alex
Run Code Online (Sandbox Code Playgroud)

这应该允许,但是我收到此错误

usermod: user alex is currently used by process 2
Run Code Online (Sandbox Code Playgroud)

大概是因为我以该用户身份登录。我尝试通过执行sudo su -然后再次运行命令来root,但我遇到了同样的问题。我尝试了一个我在 Google 上找到的命令alex从 root 中注销用户,但这也让我完全退出了 bash。

有什么想法吗?

har*_*ymc 57

使用 WSL 更改主目录的方式与在 Linux 中相同:

  1. 输入 bash
  2. 输入命令 sudo vim /etc/passwd
  3. 找到您帐户的行,它可能如下所示:
    harry:x:1000:1000:"",,,:/home/harry:/bin/bash
  4. /home/harry使用 WSL 表示法将上面的主目录更改为新目录(如果要将 Windows 目录设置为主目录,则需要在其前面加上/mnt/,例如/mnt/cC:/、/mnt/dD:/ 等)
  5. 保存文件并通过键入:wq并按退出 vimEnter
  6. 退出 bash 并重新启动它
  7. 要测试,请使用以下命令:
    cd ~
    pwd

如果您需要更多信息,请与我们联系。

  • 小心这一点 - 如果你离开主要的假 linux 文件系统,你会发现你无法正确编辑文件权限。 (4认同)

小智 7

截至 2021 年,有更好的方法以 root 身份登录并更改用户的主目录:

  • Win + R
  • 进入cmd /C wsl -u root
  • 根终端将打开,现在您可以usermod -d <path> <user>毫无问题地使用该命令(例如usermod -d /mnt/c/Users/Alex alex