无法在 Windows 10 WSL 中更改 root 密码

Dra*_*orn 28 windows windows-subsystem-for-linux

我已经尝试过这两个命令

sudo passwd
Run Code Online (Sandbox Code Playgroud)

sudo -u root /bin/bash
Run Code Online (Sandbox Code Playgroud)

但是只要我输入两次新密码,它就会说密码已更新。您关闭 shell 并打开一个新实例,它仍在使用旧的 root 密码工作。

请帮忙。

bic*_*ole 60

有一个更简单的方法。

  1. 打开cmd.exe
  2. 类型 wsl -u root
  3. 输入passwd username并更改密码
  4. 类型 exit
  5. 类型 wsl
  6. 键入sudo echo hi以确认新密码有效。

  • 我不知道为什么,但这个命令似乎对我不起作用,是的,当我输入“wsl -u root”时,它只是访问 ubuntu root 用户,然后我输入“passwd root”,它要求输入新密码,我输入新密码,并通过重新输入进行确认,之后当我启动 ubuntu 终端并使用 `sudo su` 时,新密码不起作用...... (3认同)

anx*_*anx 36

  1. 在 wsl 中,sudo passwd将更改 WSL 根用户的密码。
  2. 在 wsl 中,passwd将更改当前 WSL 用户的密码
  • 指定要使用的 WSL 用户(临时) wsl -u [user]
  1. 在 wsl 中,passwd [user]将更改任何 WSL 用户的密码
  2. 在 wsl 中,sudo一般会询问当前 WSL 用户的密码。
  3. 在 windows cmd.exe 中,您可以更改默认 WSL 用户(永久):
  • 在当前版本中: ubuntu.exe config --default-user [user]
  • 在旧版本中17031709lxrun /setdefaultuser [user]
  • 可能需要重新启动

您可能想要更改sudo具有权限的非 root 用户的密码。

您可能不想更改 root 用户密码(因为在 Ubuntu 中,root 用户通常不应该有密码,而sudo应该使用)。您可能也不希望将默认用户保留为 root。即使在窗体窗口工作时,它仍然是一个不好的做法。

可以在此处找到有关用户帐户和权限的Microsoft 官方文档:https : //msdn.microsoft.com/en-us/commandline/wsl/user_support


小智 18

假设您在本说明中使用的是 Ubuntu。

  • 如果您忘记了 WSL 上的密码,只需在搜索中键入 cmd 从 Windows 中打开命令提示符即可。
  • 然后键入ubuntu config --default-user root将 root 设置为 Linux Bash Shell 的默认用户。
  • 然后打开 Linux Bash shell,它会以 root 身份登录,而无需输入密码。
  • 然后用于passwd username重置任何用户的密码。
  • 使用ubuntu config --default-user username重置回到正常的Linux用户帐户。

  • 有一个更简单的方法。1. 打开 cmd.exe 2. 输入 `wsl -u root` 3. 输入 `passwd username` 并更改密码 4. 输入 `exit` 5. 输入 `wsl` 6. 输入 `sudo echo h`' 确认新密码有效。 (9认同)

小智 8

无需重新配置 Ubuntu,但是,如果您安装了多个发行版并且 Ubuntu 不是您的默认发行版,则除了 root 用户之外,您还必须指定该发行版。

然后继续处理您的事务,重置您的常规用户帐户。从 @NotTheDr01ds 窃取一句话,假设你的发行版名称是“Ubuntu”:

wsl.exe -d Ubuntu -u root passwd username
Run Code Online (Sandbox Code Playgroud)

典型的 Ubuntu 发行版名称包括:

  • Ubuntu:从 Microsoft Store 安装或wsl --install作为“无版本”应用程序安装时。
  • Ubuntu-18.04Ubuntu-20.04Ubuntu-22.04:从 Microsoft Store 安装或wsl --install作为 Ubuntu 的特定版本安装时。