このすみろぐ

とあるWebエンジニアが、技術や趣味について書くブログです。

Windows11のWSL2でrootユーザーのパスワードを再設定する

Windows11のWSL2(Ubuntu)で、rootユーザーのパスワードがわからなかったため、再設定しました。

基本的にはrootユーザーになって passwd するだけなのですが、付随する注意点や興味深いこともあったため、書き記します。

$ sudo su -
# passwd
New password:
Retype new password:
passwd: password updated successfully
#

注意点: su - ではなく sudo su - である

普通に su - を実行すると、rootユーザーのパスワードを求められてしまいます。

$ su -
Password:

一方で、sudo su - だとパスワードを求められません。 sudo によって、スーパーユーザー権限で su - が実行されるからです。

なぜ sudo が実行できるのか

WSL2のUbuntuに作成したデフォルトユーザーで、なぜsudoが実行できるのか興味がわいてきたので、少しだけ調べました。

/etc/sudoers

sudo実行権限の管理ファイル(/etc/sudoers)を確認したところ、 adminまたはsudoグループであれば、sudoですべてのコマンドを実行できることがわかります。

$ sudo cat /etc/sudoers
# 途中省略

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# 途中省略

groups

Windows TerminalからUbuntuシェルを起動したときのデフォルトユーザーは、sudoグループに所属していることがわかります。

$ groups
# 途中省略
adm dialout cdrom floppy sudo audio dip video plugdev netdev

/etc/group

またはグループファイルを確認しても、同様であることがわかります。

$ sudo cat /etc/group
# 途中省略
sudo:x:27:ここに最初に作成したデフォルトユーザーが定義されていた

まとめ

WSL2のrootユーザーのパスワードを変更するには、sudo su - でrootユーザーになってから、passwd でパスワード変更すれば良いことがわかりました。

WSL2は便利なので、使いこなしていきたいです。