※当サイトの記事には、広告・プロモーションが含まれます。

WSL 2(Windows Subsystem for Linux 2)がsystemdに対応されてるのでCentOSを使う

gigazine.net

⇧ Oh, my gosh...

WSL 2(Windows Subsystem for Linux 2)がsystemdに対応されてるのでCentOSを使う

何だかんだで、テスト環境だと「CentOS 7」が未だ現役なことがあることが多いのかもしれないので「WSL 2(Windows Subsystem for Linux 2)」で「CentOS 7」を使ってみる。

By the way、

devblogs.microsoft.com

⇧「WSL 2(Windows Subsystem for Linux 2)」でsystemdが利用できるようになっていますね。

で、「WSL 2(Windows Subsystem for Linux 2)」でインストール可能なディストリビューションの一覧を確認してみたところ、

⇧ インストール可能なディストリビューションとして、「CentOS」は見当たらない...

「WSL 2(Windows Subsystem for Linux 2)」でインストール可能なディストリビューションとして用意されていないLinuxディストリビューションを利用する場合は、

learn.microsoft.com

ディストリビューションの tar ファイルを取得する 

まずは、そのディストリビューションのすべての Linux バイナリが含まれる tar ファイルを取得する必要があります。

tar ファイルは、さまざまな方法で取得できます。そのうちの 2 つは次のとおりです。

https://learn.microsoft.com/ja-jp/windows/wsl/use-custom-distro

⇧ どちらかの方法でインストールする感じになる模様。

www.netmarvs.com

⇧ 上記サイト様によりますと、tarを公開してくれていらっしゃる方がおられるそうな、ありがたや。

今回は、上記サイト様で紹介されていたGitHubリポジトリで公開されているzipファイル(tarが含まれてる。正確には、tar.gzファイルだけど。)をダウンロードしてくる方法を選択。

ダウンロードが完了したら、展開(解凍)して、「CentOS7.exe」を実行する。

仮想ハードディスクの「ext4.vhdx」が出来上がっていればOKらしい。

CentOSが追加されています。

CentOSを起動して接続。

systemdが有効になっていないようなので、

learn.microsoft.com

systemd を有効にする方法

WSL 2 で実行されている他の Linux ディストリビューションに対して systemd を有効にするには (systemv init の使用から既定値を変更する)。

https://learn.microsoft.com/ja-jp/windows/wsl/systemd

⇧ 上記にある手順の通り、「/etc/wsl.conf」ファイルを作成して、設定を追記する。

追記して、保存。

CentOSを再起動して、systemdが有効になったことを確認する。

とりあえず、「CentOS 7」が利用できるようになったようです。

ユーザーを追加しておく。

useradd [ユーザー名]
passwd [ユーザー名]

CentOSでデフォルトで用意されているsudoの利用できるグループに、作成したユーザーを追加する。

usermod -aG wheel [ユーザー名]

追加したユーザーがsudoを利用できるように設定。

vi /etc/pam.d/su

以下のコメントアウト部分を解除する。

#auth            required        pam_wheel.so use_uid    

auth            required        pam_wheel.so use_uid    

追加したユーザーでsudoが利用できるか確認。

⇧ sudoが利用でき、wheelグループにも追加されているのが確認できました。

パスワードについては、

www.unknownengineer.net

tech-blog.s-yoshiki.com

⇧ パスワード(平文)が分かっていれば、ハッシュ化したものと比較して確認できる模様。

⇧ ハッシュの値が一致しているのが確認できました。

pythonでも確認できる模様。

qiita.com

⇧ 気を付けたいのが、確認のためにハッシュ化する時に指定する「ソルト」の値で、「$」はエスケープのために、「\」を付けてあげる必要があるってことですかね。

まぁ、パスワード(平文)忘れちゃった場合は、変更するしかないけど...

毎度モヤモヤ感が半端ない...

今回はこのへんで。