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は便利なので、使いこなしていきたいです。