在侧载发行版中的 Linux/WSL 中设置默认用户

在侧载发行版中的 Linux/WSL 中设置默认用户

Microsoft 商店中的 WSL Distros 附带一个用于设置默认用户的实用程序ubuntu config --default-user new_user_name。如果我侧载发行版映像,则该选项不存在。如果没有它,我该如何设置默认用户?

Windows 10 专业版内部版本 19033.1

至于安装发行版,我会从类似的地方下载 tar.gz这里并使用wsl --import <Distro> <InstallLocation> <FileName>来安装它。

答案1

另一种方法 - 添加内部版本 18980- 简单,不需要修改注册表:

  1. 在 WSL 发行版中创建该/etc/wsl.conf文件(如果它尚不存在)。

  2. 添加以下部分:

    [user]
    default=<username>

答案2

警告:以下注册方法未记录且可能会发生变化。

  • 方法 1,简单但未记录。打开注册表编辑器。转到此键 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss。双击以展开它。花括号中会有一些随机字符串,称为全局唯一标识符。逐一检查,直到找到与DistributionName注册表匹配的分发名称。现在双击 DefaultUidDWORD 注册表并将值更改为将设置为默认值的用户 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.hWindows 10 SDK 的头文件中。例如,要在 Ubuntu 发行版中将普通用户 (uid = 1000) 设置为默认用户,请使用以下命令:
WslConfigureDistribution(L"Ubuntu", 1000, WSL_DISTRIBUTION_FLAGS_DEFAULT);

该方法用于WSL 分发启动器它与 Windows Store 中的每个 WSL 发行版捆绑在一起。

相关内容