I have tried both commands
sudo passwdand
sudo -u root /bin/bashBut as soon as I enter the new password twice, it says password has been updated. You close the shell and open a new instance, it is still working on the old root password.
Please help.
14 Answers
There is a simpler method.
- Open cmd.exe
- Type
wsl -u root - Type
passwd usernameand change the password - Type
exit - Type
wsl - Type
sudo echo hito confirm the new password works.
- in wsl,
sudo passwdwill change the password of the WSL root user. - in wsl,
passwdwill change the password of the current WSL user
- to specify which WSL user to use (temporarily)
wsl -u [user]
- in wsl,
passwd [user]will change the password of any WSL user - in wsl,
sudogenerally asks for the password of the current WSL user. - in windows cmd.exe, you can change the default WSL user (permanently):
- in current versions:
ubuntu.exe config --default-user [user] - in legacy versions
1703,1709:lxrun /setdefaultuser [user] - a restart may be required
You probably want to change the password of the sudo-capable, non-root user.
You probably do not want to change the root users password (because in Ubuntu, the root user generally should not have a password, sudo should be used instead).
You probably also do not want to leave your default user as root. Even when working form windows, its still a bad practice.
Official Microsoft documentation on User Accounts and Permissions can be found here:
3It is assumed you are using Ubuntu in this explanation.
- If you forgot your password on WSL simply open your command prompt from windows by typing cmd on search.
- Then type
ubuntu config --default-user rootto set root as the default user for Linux Bash Shell. - Then open the Linux Bash shell which will log you in as root without asking for password.
- Then use
passwd usernameto reset the password of any user. - Use
ubuntu config --default-user usernameto reset back to your normal Linux user account.
There is no need to reconfigure Ubuntu, but, if you have more than one distribution installed and Ubuntu is not your default, you must also specify the distribution in addition to the root user.
Option 1 -- Ubuntu is the default WSL distribution:
wsl.exe -u rootOption 2 -- Ubuntu is not the default WSL distribution:
First determine the distribution name:
wsl.exe -l -vThen use the distribution name with
-d/--distribution:wsl.exe -d <distro> -u root
Then go about your business to reset your regular user account. Stealing the one-liner from @NotTheDr01ds, assuming your distribution name is "Ubuntu":
wsl.exe -d Ubuntu -u root passwd usernameTypical Ubuntu distribution names include:
- Ubuntu: When installed from the Microsoft Store or
wsl --installas the "unversioned" app. - Ubuntu-18.04, Ubuntu-20.04, or Ubuntu-22.04: When installed from the Microsoft Store or
wsl --installas a specific version of Ubuntu.