ユーザーアカウントのポイント
「WSL」にLinuxユーザーのアカウントを作成管理する機能が追加されました。ユーザーアカウントを利用する上でポイントを紹介します。
ここでは特に明記がない限り、アカウントとはUbuntuのユーザーアカウントのことを指します。
1.Bashを初めて起動した時にアカウントの作成を行う
「Bash」を初めて起動した時にアカウントの作成を行います。後からアカウントを作成することもできます。
2.UbuntuのユーザーアカウントとWindowsのユーザーアカウントは別々の管理
UbuntuのユーザーアカウントとWindowsのユーザーアカウントは別々に管理されます。従って、UbuntuのユーザーアカウントとWindowsのユーザーアカウントは一致している必要がありません。
アカウントで設定するパスワードは、Bash内(WSL内)でのみ使用されるパスワードです。
WSL外でそれらのパスワードは使用されません。
逆もまた然りです。
例えば「sudo」でコマンドを実行する時は、アカウントのパスワードを入力します。
3.アカウントを作成するとsudoグループに追加される
アカウントを作成すると、そのユーザーは「sudo」グループに追加されます。「sudo」グループに追加されたユーザーは管理者権限を持ち、「sudo」によるコマンドの実行が可能になります。
ただし「bash」内で作成したユーザーは、Ubuntuの作法に従います。
4.bashを起動した時に作成したユーザーで起動する
「Bash」を起動すると、「1.」で作成したユーザーで自動的に起動します。「Bash」を起動した時に使用するユーザーは後から変更することもできます。
5.Bash起動時、パスワード入力は要求されない
「Bash」を起動時、アカウントのパスワードを要求されること無く「Bash」が起動します。ただし「Bash」内でユーザーを切り替える時はUbuntuの作法に従うため、パスワードの入力が必要になります。
6.WSL環境はWindowsのユーザーごとに提供される
WSL環境はWindowsのユーザーごとに提供されされます。WSLサブシステムは一つですが、WSL(Ubuntu on Windows)の環境はユーザーごとに用意されます。
従って、他のユーザーのWSL環境が別のユーザーのWSL環境に影響を与えるこはありません。
それぞれ別々のWSL環境となり、アカウントもそれぞれの環境ごとに管理されます。
アカウントの権限について
UbuntuのユーザーアカウントとWindowsのユーザーアカウントは別々に管理されますが、Windowsのユーザーアカウントが持つ権限はUbuntuのユーザーアカウントの権限にも影響を与えます。Bashが持つ権限
「Bash」起動時、「Bash」はコンソールと同じ権限を持ちます。例えばコマンドプロンプトやPowerShellのプロンプトで「bash(bash.exe)」と入力し「Bash」を起動した場合、「Bash」はログオンしたWindowsのユーザーと同じ権限を持ちます。
従ってWindowsのユーザーがアクセスできないフォルダーに移動しようとしても、以下のように権限がないとのエラーが表示されます。
たとえ「bash」内で「root」になっても、結果は同じです。
一方、管理者権限で起動したコマンドプロンプトやPowerShellのプロンプトで「bash(bash.exe)」と入力し「Bash」を起動した場合、「Bash」はWindowsの管理者権限と同じ権限を持ちます。
UbuntuのrootとWindows管理者の権限の違い
本来のUbuntuでは、「root」はPCのすべてのリソースにアクセスできる権限を持ちます。たとえファイルやフォルダーのパーミッションがオーナーのみアクセス可能なパーミッションであっても、「root」ならアクセスできます。しかし「Ubuntu on Windows」では上記のように、Ubuntuのユーザーが持つ権限はWindowsのユーザーの権限に影響を受けます。
Ubuntuのユーザーが持つ権限は、WSL環境内のファイルシステムなどWSL環境にのみ影響を与えます。
例えば「apt update」は「root」でなければ実行できませんし、「root」のみアクセス可能なファイルは「root」でアクセする必要があります。
この部分のみを切り取れば、この点はUbuntuの作法と同じです。
しかし「/mnt/ドライブ」以下のファイルには、Windowsユーザーの権限が作用します。