WindowsのWSL(Windows Subsystem for Linux)で利用するUbuntuは、一般ユーザーと呼ばれるユーザーで使うことになる。Ubuntuを最初の起動時に入力したユーザー名とパスワードが一般ユーザーのアカウントになっている。これは妥当な設定だが、このままでは管理者権限が必要になる操作を行えない。
そこで今回は、管理者権限が必要な場合にスーパーユーザーになる方法を説明する。→連載「WindowsでUbuntuをはじめる」のこれまでの回はこちらを参照。
Ubuntuを起動
Ubuntuを起動する。スタートメニューから「Ubuntu on Windows」を選択すればよい。
「Ubuntu on Windows」を選択すると、上のようなターミナルアプリケーションが起動してくる。ここでUbuntuのコマンドを実行する。
一般ユーザーでは実行できないコマンドがある
Ubuntuでは、「apt update; apt upgrade」でパッケージをアップデートする。この手軽さがUbuntuの便利なところなのだが、一般ユーザーのままではこのコマンドを実行できない。
こうしたコマンドは、スーパーユーザーで実行する必要がある。
スーパーユーザーになる方法
Ubuntuに限らず、UNIX系のオペレーティングシステムでは「su」というコマンドを実行することで一般ユーザーからスーパユーザーになったり、スーパユーザーがほかのユーザーになったりすることができる。
しかし、WSLで使用するUbuntuでは、そのままではsuを使えない仕組みになっている。実行しても、次のように一般ユーザーからスーパーユーザーになることはできない。
Linux系のオペレーティングシステムでは、代わりに「sudo」というコマンドで、特定の権限のみスーパーユーザーの権限を与えるといった使い方をすることが多い。ちょっと本末転倒な使い方になるが、次のスクリーンショットのように「sudo su」と実行すると、suが機能するようになって一般ユーザーからスーパーユーザーになることができる。
WSLで動作するUbuntuでは、sudoコマンドを実行した際にユーザーのパスワードの入力が求められる。WSL Ubuntuをセットアップしたときに入力したパスワードをここで入力する。
スーパーユーザーでコマンドを実行するサンプル(1)
次のスクリーンショットは、「sudo su」でスーパーユーザーになってから、「apt update」コマンドを実行したところだ。
WSL Ubuntuでこのような使い方をすることはあまりないだろうが、明示的にスーパーユーザーになってから操作できることは覚えておいてもらえればと思う。
スーパーユーザーでコマンドを実行するサンプル(2)
sudoコマンドは、コマンド単位でスーパーユーザーとして実行できるところが便利だ。つまり、以下の画面のような感じで、スーパーユーザーになることなく、スーパーユーザー権限が必要なコマンドだけスーパーユーザー権限で実行することができる。
よって、実際のところ、通常のコマンドはそのまま実行し、管理者権限が必要なものは「sudo コマンド」のように実行する、というのがUbuntuの使い方ということになってくる。
sudoは本来もっと細かな制御が可能
sudoコマンドは本来、もっと細かく設定して使うことが想定されたコマンドだ。具体的には、「このコマンドだけあるユーザーが管理者権限で実行できるようにする」といった設定ができる。そのため、必要最低限のコマンドを必要最小限のユーザーに管理者権限での実行を許可するために使うことが想定されている。
しかし、現実にはスーパーユーザーで実行するための簡易コマンドとして使われていることが多い。緩い設定にしておくとセキュリティの穴になるのでオススメはできないのだが、WindowsのWSLで動作するUbuntuで使う分にはこのくらいでよいのではないかと思う。厳密に設定して使いにくくしても、それはそれでやりすぎだ。Linuxサーバを運用するようなケースでは、もっと厳密に設定して使うとことを覚えておけばよいと思う。
参考
- Windows Subsystem for Linux Documentation | Microsoft Docs
- What is Windows Subsystem for Linux | Microsoft Docs
- Install Linux on Windows with WSL | Microsoft Docs
- Basic commands for WSL | Microsoft Docs
- Run Linux GUI apps with WSL | Microsoft Docs
- Get started using VS Code with WSL | Microsoft Docs
- Set up Node.js on WSL 2 | Microsoft Docs
- Advanced settings configuration in WSL | Microsoft Docs
- Add or connect a database with WSL | Microsoft Docs
- Comparing WSL 1 and WSL 2 | Microsoft Docs
- Manual installation steps for older versions of WSL | Microsoft Docs
- Set up a WSL development environment | Microsoft Docs
- Install Linux Subsystem on Windows Server | Microsoft Docs
- Troubleshooting Windows Subsystem for Linux | Microsoft Docs
- FAQ's about Windows Subsystem for Linux | Microsoft Docs
;link;; https://news.mynavi.jp/techplus/article/ubuntu-on-windows-7/ https://news.mynavi.jp/techplus/article/20221103-2501061/ https://news.mynavi.jp/techplus/article/20220923-2460430/ https://news.mynavi.jp/techplus/article/linux-349/