WSLでrootになれなくなった時の対処法
通常は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で確認を取るとかにするともうちょっと安全な感じもしますが。
Author And Source
この問題について(WSLでrootになれなくなった時の対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/shigeokamoto/items/c1e491aa913b0bc8b97f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .