如何更改 WSL 中的默认用户名?

now*_*wox 10 windows-subsystem-for-linux

许多网站说我应该使用lxrun /setdefaultuser,但不推荐使用此命令:

C:\WINDOWS\system32>lxrun /setdefaultuser foo

警告:lyrun.exe 仅用于为 Linux 发行版配置旧版 Windows 子系统。

如何更改我的默认用户名root。我希望它与我在 Windows 帐户中使用的用户名相同。

顺便说一句,我正在使用 mintty 来运行 WSL:

%LOCALAPPDATA%\wsltty\bin\mintty.exe --WSL= -h err --configdir="%APPDATA%\wsltty" -~ 
Run Code Online (Sandbox Code Playgroud)

Ram*_*und 14

Microsoft 已记录如何在 Fall Creators Update 及更高版本中完成此操作。 建议的命令只是一个示例,可能会因您使用的 WSL 实例而异。

这个问题是在 2017 年提出的,因此 WSL 实例的名称可能不再适用于较新版本的 Ubuntu WSL,或者是否正在使用不同的 WSL 发行版。建议的命令适用于 Windows 应用商店中的任何 WSL 发行版。

要查看可用于特定发行版的命令,请运行 [distro.exe] /?。

例如,安装了 Ubuntu:

C:> ubuntu.exe /?

在此处输入图片说明

这意味着为了在 Ubuntu 中将默认用户更改为 root,您将使用以下命令。

C:\> ubuntu config --default-user root
Run Code Online (Sandbox Code Playgroud)

该文档指出以下内容:

在此处输入图片说明

来源:用户帐户和权限


Not*_*1ds 6

截至 2021 年(以及几年前)发表此答案时,当前Microsoft 建议在实例中设置用户名的方法是在实例中创建/etc/wsl.conf具有以下设置的用户名:

[user]
default=username
Run Code Online (Sandbox Code Playgroud)

当然,将用户名更改为您的默认用户名。

这适用于 WSL1、WSL2,无论发行版名称如何。如果不是从商店安装发行版,它甚至可以工作。