はじめに
備忘録と困ったことの共有として、初めて記事を書きます。
環境
- Windows Terminal
- wsl2
- ubuntu 18.04
- ubuntu 20.04
- Windows PowerShell
- wsl2
起こった問題
wsl2のubuntu18.04でsudoコマンドが使えなくなった。
具体的にはsudo apt
やsudo chmod
をした時にコマンドが見つかりません
と言われてしまう。
原因
wslでusbシリアル通信をしたくて、sudoersのsecure_pathをいじってしまったため、sudoコマンドが実行できず、sudoersファイルの書き直しもできなくなってしまった。
sudoersとは(自社調べ)
sudoコマンドのパスなどの諸々の設定を行う。sudo visudo
により変更できる。
対処
PowerShellから下記を打ち込む
wsl -u root
PowerShellから、wslのubuntuをroot(管理者権限?)で実行できるので、そのままsudo visudo
でsudoersファイルを書き直せばよい。
wslで複数のディストリビューションを作っている場合
既定のディストリビューションが起動するので、既定を変更する必要がある。
wsl -l
で起動できるディストリビューションを確認。
(規定)と書かれたディストリビューションが規定。
PS C:\Users\username> wsl -l
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu-18.04 (既定)
Ubuntu-20.04
上記例では18.04が規定なのでwsl -s Ubuntu-20.04
で20.04に規定を変更する。
特に変更された通知はないので、wsl -l
で確認。
おわりに
余談ですが、実機でsudoresの設定を間違えた時は、ubuntu起動時に選択できるリカバリーモードで修正できるらしいです。
raspiで間違えた時はsdカードをいじる感じらしいです。
もっとsudersについては知らない設定もあったので勉強していきたい所存です。