このページの本文へ

Windows Info 第114回

RS4におけるWindows Subsystem for Linuxの改良点 drvfsのメタデータ対応

2018年01月28日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

 次期Windows 10となる予定のRS4(Ver.1803が想定されている)では、Windows Subsystem for Linux(以下、WSL)からWindows側のファイルをアクセスするためのdrvfsが改良される。この改良では、ファイルの所有者やパーミッションが設定可能になる。というのも、現在のRS3では、devfs側ではファイルの所有者やパーミッションの設定がまったくできなかったのだ。

 ただしこの改良では、Linux側とWindows側で矛盾なく動作させる必要性から、Windows側のアクセス許可が優先される。たとえばWindows側で書き込み不可としたファイルにWSL側から書き込むことはできない。一方で、パーミッションを制御するchmodコマンドでは、書き込み属性を設定することができ、lsコマンドも書き込み属性があるように表示する。また、ファイルやディレクトリの所有者も変更が可能になるが、こちらもWindows側のファイル所有者を変更しない。しかしWSL側では変更が有効になり、所有者やグループが変更されたように見える。

 具体的にどんな改良なのかを見ていくことにしよう。

RS4におけるパーミッション

 RS3までのdrvfsでは、所有者のユーザーID、グループIDは、rootであり、パーミッションは「rwxrwxrwx」(所有者、グループ、その他のユーザーがすべて読み書き可能で実行可能)となっていた。chmodやchownといったパーミッションや所有者を変更するコマンドはエラーにならなかったが、変更はまったくできなかった。

RS3では、drvfsでのパーミッション変更や所有者変更コマンドはエラーにならないものの効果がなかった

 また、実際のファイルやディレクトリに対するアクセス許可はWindows側のアクセス許可に従っていて、Windows側でリードオンリーとしたファイルに書き込むことはできず、実行時にエラーとなった。

 これに対してRS4のWSLでは、drvfsに対してパーミッションや所有者の変更が有効になった。chmodやchownコマンドを実行すると、ls -lコマンドの結果に変更が反映される。

RS4では、drvfsでもパーミッションや所有者の変更コマンドが有効になる。Build17074では再マウントしてmetadataを有効にする必要がある

 もっとも、実際のファイルやディレクトリに対する操作は、Windows側のアクセス許可に従って判断され、RS3同様にWindows側で書き込み禁止したファイルにWSL側で書き込むことはできない。

 しかしWSL側からは、ファイルやディレクトリに対する変更が反映されたように見えるため、ソフトウェアの互換性という問題をある程度クリアできる。一部のLinuxソフトウェアは、セキュリティ上の理由などにより、自身が扱うファイルやディレクトリのパーミッションや所有者などをチェックしている。

 たとえばsshdは、認証鍵ファイルが保存されているディレクトリのパーミッションが特定の状態ないとエラーになる。これは、重要な情報に他のユーザーがアクセスできないようにしないとセキュリティ上の問題になるからだ。

 このパーミッションや所有者の設定は、Windowsのファイルとは別の場所に記憶されるようだ。WSLを再起動しても、前回設定した状態が復元される。この記録は、WSL側で設定したもののみで、WSL側でなにも設定していないファイルやディレクトリに関しては、デフォルト値が使われる。

 RS4では、ファイルの所有者のデフォルト値は、Linuxディストリビューションのインストール時に設定したユーザーとなっている(WSLコマンドなどでログイン状態となるユーザーアカウント)。また標準では、このユーザーには、1000というユーザーID、グループID番号が割り当てられている。

Linuxにおけるファイルパーミッション

 Windows Insider Preview Build 17074では、WSLを起動したときのdrvfsは、metadataを扱うようになっていないため、ユーザーがオプションを指定してdevfsを再マウントする必要がある。

 このオプションなどを説明するには、Linuxのパーミッションなどについてある程度の知識が必要になる。ここでは、最低限の説明としてchmod、chownコマンドを中心にパーミッションについて説明しておく。

 Linuxのファイルやディレクトリに対するパーミッション(Windowsでいうアクセス許可)は、「読み込み」「書き込み」「実行」の3つを個別に可、不可と設定するもの。ただし実行はファイルに対するもので、対象がディレクトリの場合には、ディレクトリ内部を見せるかどうかの許可になる。この許可は、3ビットで表現できるため、0~7までの数字を対応させて表現することもある)。

 また、すべてのファイルは所有者がいて、登録されたユーザーの誰か(システムアカウントもある)になる。また、すべてのユーザーはグループに属している。前記のパーミッションは、「所有者」に対するもの、同じ「グループ」に属する他のユーザー、それ以外のユーザーの3種類ある。このため、前記のパーミッションを表現する0~7までの数字をそれぞれのユーザー別に3桁とした数値で表現できる。

 この仕組みはUnix由来のもので、ファイルやディレクトリのパーミッションを操作するchmodコマンドもUnix由来の仕様がそのままLinuxでも使われている(プログラムが同じという意味ではない)。

 このchmodにはファイルやディレクトリのパーミッションを設定するのに「数値モード」と「シンボリックモード」の2つがある。前者は、パーミッションを意味するビットを4桁の8進数として表現する。

 先頭の1桁(最上位桁)は属性でファイル実行時の特殊なモードなどを表す。

 後者は、許可するパーミッションをrwxなどの文字と+(許可)、-(不許可)などの文字で表現する(詳細はmanなどでchmodを調べてほしい)。

 もう1つ、数値モードで使われるパーミッションに対して、「mask」という概念がある。これは、指定されたパーミッションを2進数に見立て、同じく2進数のマスクパターンと、現在のパーミッションを組みあわせて論理演算をし、最終的なパーミッション値を計算するもの。マスクパターンでは、変更させたくないビットを1にして指定をする。

 たとえば、ファイルに対して、所有者は読み書き実行を許可し、グループに対して読み込みと実行のみ、それ以外のユーザーには何も許可しないという場合には、「0750」という数字を使う。なお、先頭行のゼロは省略可能なので、これを「750」と表記することが多い。

 また、所有者はすべてのパーミッションが設定可能で、グループメンバーやその他のユーザーには、書き込みを禁止させたい場合、mask値として「022」(22)を利用する。

 chownコマンドは、ファイルに設定されている所有者のユーザーidやグループid(ユーザーは複数のグループに属することができるがファイルに指定できるグループidは1つだけ)を変更するためのコマンドだ。詳しくはmanコマンドをみてほしいが、以下の書式で所有者を変更する。

chown ユーザー:グループ 対象ファイルやディレクトリ

 なお、ユーザーやグループの指定には、ユーザー名(rootなどの文字表現)やグループ名とユーザーID番号、グループID番号も指定できる。ユーザー名とユーザーID番号の対応は/etc/passwdというファイルに、グループ名とグループID番号との対応は/etc/groupファイルに記載されている。

RS4におけるdrvfsマウントオプション

 RS4からは、drvfsをシステムにマウントする場合のオプションが追加され、メタデータ利用の可否、デフォルトのユーザーidやグループid、デフォルトのパーミッションマスクなどが指定できる。これにより、WSL側からパーミッションの指定がまったくされていないファイルやディレクトリはデフォルトのパーミッションと許可マスクを持つことができる。

 ただし、Build 17074では、WSLを起動したときには、cドライブなどは、メタデータなしでユーザーIDとグループIDは1000(Linuxディストリビューションインストール時に登録したユーザーアカウントのユーザーID番号)となっている。

 このため、メタデータを利用する場合には、一回umountコマンドでCドライブに対応するdrvfsをアンマウントしてから、再度mountコマンドでオプションを指定してマウントしなおす必要がある。

metadataをdevfsで有効にするには、マウントコマンドにオプションを指定する。そのためには一回umountコマンドでアンマウントする必要がある

 このときには、drvfs固有のマウントオプションとし以下の表のようなものがある。

 また、mountコマンドでdrvfsをマウントするときには、

mount -t drvfs C: /mnt/c -o metadata,uid=1000,……

などととして指定をし、マウントを解除(アンマウント)する場合には、

umount /mnt/c

とする。

 drvfsは、WSLでLinuxが起動するときに自動的にマウントされるが、まだmetadataを反映する形ではマウントされていない。おそらく、最終版では、オプションにmetadataが指定された形でLinuxディストリビューションが起動することになると思われる。

 というのも、WSLで自動的にマウントされるdrvfsなどについては/etc/fstabに記述がなく、また、前回説明したようにrcスクリプトも動作していないため、initプロセスの中でマウント処理が行われているのだと考えられる。早晩プレビュービルドでマウントオプションが変わると思われるが、init側に手がつけられていないのは、そもそも現在のdrvfs固有のマウントオプション(その多くはfatファイルシステム固有のmountオプションだったもの)は最終仕様ではなく、今後変化する可能性があるからと推測される。

カテゴリートップへ

この連載の記事
1
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、Touch ID - シルバー
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、Touch ID - シルバー
¥177,333
2
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動16.9時間 重量1.59kg ルナグレー 83K100G4JP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動16.9時間 重量1.59kg ルナグレー 83K100G4JP ノートPC
¥107,800
3
【Amazon.co.jp限定】Lenovo Chromebook クロームブック Duet 11 10.95インチ MediaTek Kompanio 838 プロセッサー​搭載 メモリ8GB eMMC 128GB 重量1.0kg 83HH000TJP パソコン
【Amazon.co.jp限定】Lenovo Chromebook クロームブック Duet 11 10.95インチ MediaTek Kompanio 838 プロセッサー​搭載 メモリ8GB eMMC 128GB 重量1.0kg 83HH000TJP パソコン
¥61,800
4
【整備済み品】 富士通 ノートパソコン LIFEBOOK U939 超軽量 薄型 ノートPC ■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第八世代 Core i5-8265U/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
【整備済み品】 富士通 ノートパソコン LIFEBOOK U939 超軽量 薄型 ノートPC ■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第八世代 Core i5-8265U/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
¥30,800
5
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥36,970

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,880
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥743
5
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,100
6
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
¥1,880
7
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
¥1,899
8
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥4,918
9
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥652
10
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
¥699

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン