Microsoft 商店中的 WSL Distros 附带一个用于设置默认用户的实用程序ubuntu config --default-user new_user_name
。如果我侧载发行版映像,则该选项不存在。如果没有它,我该如何设置默认用户?
Windows 10 专业版内部版本 19033.1
至于安装发行版,我会从类似的地方下载 tar.gz这里并使用wsl --import <Distro> <InstallLocation> <FileName>
来安装它。
答案1
另一种方法 - 添加内部版本 18980- 简单,不需要修改注册表:
在 WSL 发行版中创建该
/etc/wsl.conf
文件(如果它尚不存在)。添加以下部分:
[user]
default=<username>
答案2
警告:以下注册方法未记录且可能会发生变化。
- 方法 1,简单但未记录。打开注册表编辑器。转到此键
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss
。双击以展开它。花括号中会有一些随机字符串,称为全局唯一标识符。逐一检查,直到找到与DistributionName
注册表匹配的分发名称。现在双击DefaultUid
DWORD 注册表并将值更改为将设置为默认值的用户 ID。例如,root 用户 ID 为 0(零),普通用户 ID 为 1000(十六进制为 0x3e8)。以下是注册表中 WSL 分发条目的示例:
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{73d04361-eda8-4c3a-9c74-1eb25937ba99}]
"State"=dword:00000001
"DistributionName"="Debian"
"Version"=dword:00000002
"BasePath"="F:\\Debian"
"Flags"=dword:00000007
"DefaultUid"=dword:000003e8
- 方法 2,复杂但有文档记录。这需要用 C 语言进行一些编程。使用
WslConfigureDistribution
函数设置默认用户 ID。这些WSL API写在wslapi.h
Windows 10 SDK 的头文件中。例如,要在 Ubuntu 发行版中将普通用户 (uid = 1000) 设置为默认用户,请使用以下命令:
WslConfigureDistribution(L"Ubuntu", 1000, WSL_DISTRIBUTION_FLAGS_DEFAULT);
该方法用于WSL 分发启动器它与 Windows Store 中的每个 WSL 发行版捆绑在一起。