如何在WSL的Ubuntu 中设置默认用户并解决常见问题

如何在 WSL 的 Ubuntu 中设置默认用户并解决常见问题

Windows Subsystem for Linux (WSL) 是一个强大的工具,允许在 Windows 上运行 Linux 发行版(如 Ubuntu)。在配置 Ubuntu 时,你可能希望将默认用户从 root 更改为自定义用户(例如 “ub”),并解决运行过程中遇到的常见问题,例如 sudo 权限缺失或主机名解析错误。本文将详细介绍设置默认用户的步骤,并提供针对典型错误的解决方案。

前提条件

  • 已安装 WSL 和 Ubuntu(可以通过 wsl –install -d Ubuntu 安装)。
  • 在 Windows 中以 PowerShell 或命令提示符运行命令。
  • 具备基本的终端操作知识。

设置默认用户为 “ub”

假设你想将默认用户设置为 “ub”,以下是操作步骤:

1. 创建 “ub” 用户

首次启动 Ubuntu 时,默认会要求创建一个用户。如果尚未创建 “ub”,可以手动添加:

  1. root 身份登录:

    1
    wsl -u root.
  2. 创建用户:

    1
    adduser ub

    按照提示输入密码和其他信息(可跳过非必填项)。

  3. 验证用户:

    1
    id ub

    输出应类似 uid=1001(ub) gid=1001(ub) groups=1001(ub)。

2. 设置默认用户

在 Windows 中运行以下命令,将 “ub” 设置为默认用户:

1
ubuntu config -default-user ub

注意​:如果你的 Ubuntu 发行版名称不同(例如 “Ubuntu-20.04”),用 wsl –list 检查后替换为正确名称,如:

1
ubuntu2004 config -default-user ub

3. 测试设置

启动 WSL:

1
wsl

如果成功,终端提示符应变为 ub@<主机名>:~$,表示已默认登录为 “ub”。

常见问题及解决方法

在配置过程中,你可能会遇到以下问题,以下是解决方案。

问题 1:getpwnam(ub) failed 0 错误

运行 wsl 时,如果出现:

1
<3>WSL (5 - Relay) ERROR: CreateProcessParseCommon:900: getpwnam(ub) failed 0

这表示 “ub” 用户不存在。

解决方法

  • 检查用户是否存在:

    1
    cat /etc/passwd | grep ub
  • 如果不存在,按步骤 1 创建 “ub” 用户,然后重新启动 WSL。

问题 2:ub is not in the sudoers file

以 “ub” 用户运行 sudo 命令时,出现:

1
ub is not in the sudoers file.

这说明 “ub” 没有管理员权限。

解决方法

  1. root 身份登录:

    1
    wsl -u root
  2. 将 “ub” 添加到 sudo 组:

    1
    usermod -aG sudo ub
  3. 验证:

    1
    groups ub

    输出应包含 “sudo”。

  4. 退出并重新以 “ub” 登录,测试:

    1
    sudo whoami

    输出应为 root

问题 3:unable to resolve host 警告

运行 sudo 时,可能看到:

1
sudo: unable to resolve host DESKTOP-UUI4AS5: Temporary failure in name resolution

这是 WSL 中常见的网络配置问题,通常不影响功能。

解决方法(可选)

  1. root 编辑 /etc/hosts

    1
    nano /etc/hosts
  2. 添加:

    1
    127.0.0.1   DESKTOP-UUI4AS5
  3. 保存并退出,警告应消失。

进阶配置:使用 wsl.conf

如果命令行设置默认用户失败,可以通过 Ubuntu 的配置文件实现:

  1. root 编辑 /etc/wsl.conf

    1
    nano /etc/wsl.conf
  2. 添加:

    1
    [user] <span>default=ub</span>
  3. 保存并重启 WSL:

    1
    wsl -terminate Ubuntu <span>wsl</span>

注意事项

  • 发行版名称​:始终用 wsl –list 确认你的 Ubuntu 实例名称,避免命令错误。
  • 权限​:确保在 Windows 和 Ubuntu 中有足够权限操作。
  • 重启​:某些更改(如 WSL 安装后)可能需要重启 Windows。

总结

通过 ubuntu config –default-user ub 可以轻松设置默认用户,而创建用户和赋予 sudo 权限是常见后续步骤。对于错误如 getpwnamsudoers,只需检查用户状态并调整权限即可。主机名解析警告虽常见,但通常可忽略或通过简单配置解决。

希望这篇文章能帮助你在 WSL 的 Ubuntu 中顺利配置环境!如有疑问,欢迎留言讨论。