WSL2中切换默认用户需用发行版专属命令:ubuntu2204.exe config --default-user root切至root,或ubuntu2204.exe config --default-user 用户名切回普通用户,名称大小写敏感且须匹配wsl -l -v输出。

在 Windows 11 中使用 WSL2 时,安装 Ubuntu 后默认以普通用户身份登录,但开发场景常需 root 权限直连,避免频繁 sudo;若已误设为 root 登录导致后续普通用户不可用,或想从普通用户切换回 root 默认登录,必须通过命令行精准修改注册表级配置,不能仅改密码或编辑 /etc/passwd。
确认当前 WSL 发行版名称
以管理员身份打开 PowerShell 或 Windows Terminal(管理员),执行:
wsl -l -v
输出中 NAME 列显示的名称就是你要操作的发行版名,例如 【Ubuntu-22.04】 或 【Ubuntu】。注意星号 * 标记的是默认发行版,名称大小写敏感,后续所有命令必须严格匹配该名称。
将默认登录用户改为 root
这一步直接修改 WSL 内部启动时加载的用户上下文,不改动系统账户本身。
在 PowerShell(非 WSL 终端)中执行(将 Ubuntu-22.04 替换为你上一步查到的实际名称):
ubuntu2204.exe config --default-user root
⚠ 注意:可执行文件名由发行版名称决定——Ubuntu-22.04 对应 ubuntu2204.exe,Ubuntu 对应 ubuntu.exe,Ubuntu-24.04 对应 ubuntu2404.exe。名称含短横线时,exe 文件名会自动去掉短横线并小写拼接。输错文件名会提示“不是内部或外部命令”。
执行后无任何提示即表示成功。关闭所有 WSL 窗口,重新在开始菜单点击 Ubuntu 图标或运行 wsl 命令,将直接以 root 身份登录,提示符变为 #。
恢复默认登录为普通用户
如果你之前设为 root,现在想切回最初创建的用户名(比如 song、dev 或 ubuntu),方法如下:
方法一:使用发行版专属命令(推荐)
ubuntu2204.exe config --default-user song
把 song 换成你安装时设置的真实用户名。这一步无需知道密码,也不依赖 WSL 内部是否还存在该用户 home 目录——只要该用户在 /etc/passwd 中存在,就能生效。
方法二:通用命令行方式(适用于所有发行版)
wsl -d Ubuntu-22.04 -u root
进入后执行:
cat /etc/passwd | grep '/home' | head -n1 | cut -d: -f1
这行命令会输出第一个带 /home 的普通用户名,通常是你要恢复的目标。记下它,退出 WSL(输入 exit),再执行:
ubuntu2204.exe config --default-user 上一步得到的用户名
验证 root 密码是否可用
root 用户默认无密码,首次登录后无法直接 su - 切换(报 Authentication failure)。必须先设置 root 密码:
在 WSL 中以 root 身份运行:
passwd root
按提示两次输入新密码。此后 su - 或 sudo su - 均可正常切换。
⚠ 关键前提:【必须先用普通用户登录一次并完成初始化,root 账户才被真正启用】。如果跳过普通用户首登直接设 root 默认,可能遇到空白 shell 或 /bin/bash 不存在错误——此时需先 wsl -u root 强制进 root,再执行 /usr/sbin/usermod -p '*' root 清空密码锁,然后用普通用户重登一次再设 root 密码。

















