2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WSLでrootになれなくなった時の対処法

Posted at

通常はsudoを使います

Microsoftのドキュメントにも登場するUbuntuでは、ストアからディストロをインストールした際にユーザー名とパスワードを登録し、ログイン時にはこのようなメッセージを出してくれます。

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

インストール時に作成したユーザとパスワードを使ってrootになれます。

sudoできないときは

でも、ディストロによっては sudo がインストールされていないこともあったりするわけです。
そんなときの対処方法は

$ wsl.exe --help | iconv -futf-16 | less
使用法: wsl.exe [Argument] [Options...] [CommandLine]
           (中略)
   --user, -u <UserName>
        指定されたユーザーとして実行します。

wslコマンドにユーザー指定のオプションがありました。

やってみます。

$ wsl.exe -u root
# id
uid=0(root) gid=0(root) groups=0(root)

root になれました。
ただし、wslコマンドで新たなセッションを開いているので複数のディストロがインストールされていると既定のディストロになってしまいます。そういう場合にはディストロ名を指定しておきましょう。

WSLインスタンスは環境変数WSL_DISTRO_NAMEにディストロ名が入っているので

wsl.exe -d $WSL_DISTRO_NAME -u root

このように書けば、現在アクセスしているディストロでrootになることができます。

認証なくて大丈夫?

簡単にrootになれたのですが、一抹の不安を感じた方はおられますか?
この一連の流れには認証が無いんです。パスワードを聞かれることもなく簡単に root になれてしまうんです。
このあたりが、「WSLは開発用途」といわれる所以なのでしょうね。
通常はパスワード認証を行って、パスワード無しの非常モードはWindowsの管理者権限同様にUACで確認を取るとかにするともうちょっと安全な感じもしますが。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?