Windows10でのChmodおよびChownWSLの改善
Linuxユーザーは、chownおよびchmodコンソールツールに間違いなく精通しています。 これらの2つのアプリは、権限と所有権の管理が付属している場合に不可欠です。 最近、Microsoftは、Windows 10にバンドルされている独自のLinuxサブシステムで、これらのツールに多くの改善を加えました。
広告
これで、chmod / chownを使用してファイルの所有者とグループを設定し、WSLで読み取り/書き込み/実行のアクセス許可を変更できます。 また、FIFO、UNIXソケット、デバイスファイルなどの特別なファイルを作成することもできます。 これは、多くのWSLユーザーにとって待望の機能でした。
もう1つの興味深い変更は、ファイルとフォルダーに新しいLinuxメタデータを提供するとともに、ファイルにアクセス許可を投影するためのDrvFsファイルシステムの新しいマウントオプションです。
これらの新機能を利用するには、次の1つの手順を実行する必要があります。drvfsをアンマウントし、「メタデータ」フラグを使用して再マウントする必要があります。 これを行うには、ターミナルで次のコマンドを入力します。
sudo umount / mnt / c sudo mount -t drvfs C:/ mnt / c-oメタデータ
「mount-l」を実行して次のように表示することで、正しくマウントされたことを確認できます。
DrvFsは、WSLとWindowsファイルシステム間の相互運用のサポートを追加するWSLのファイルシステムプラグインです。 DrvFsを使用すると、WSLは、/ mnt / c、/ mnt / dなどのサポートされているファイルシステムを使用してドライブをマウントできます。
DrvFsは、いくつかの新しいマウントオプションを追加します。 それらは次のとおりです。
新しいマウントオプションは次のとおりです。
- uid:すべてのファイルの所有者に使用されるユーザーID
- gid:すべてのファイルの所有者に使用されるグループID
- umask:すべてのファイルとディレクトリに対して除外する権限の8進数のマスク。
- fmask:すべての通常のファイルに対して除外する権限の8進数のマスク。
- dmask:すべてのディレクトリに対して除外する権限の8進数のマスク。
次の例を参照してください。
sudo mount -t drvfs C:/ mnt / c -oメタデータ、uid = 1000、gid = 1000、umask = 22、fmask = 111
マウントコマンドを実行すると、マウントされたデバイスのリストを照会するときに渡したすべてのパラメーターとともに、マウント(この場合はC :)が一覧表示されます。
この変更により、WindowsフォルダーとパーティションをWSLの別のユーザーアカウントでマウントできるようになります。 デフォルトのもの.
この変更により、Linuxのアクセス許可がファイルの追加のメタデータとして保存されます。 これにより、1つのファイルに対してLinuxとWindowsの両方のアクセス許可を保存できるようになります。 これで、環境を壊すことなく、WSLまたはWindowsの両方で個別にアクセス許可を変更できます。 覚えているかもしれませんが、 WindowsからLinuxファイルを変更すると、WSLが早期に破損する可能性があります.
WSLで新しく作成されたファイルは、デフォルトでメタデータを使用して作成され、設定したマウントオプションを尊重します。
重要な警告
新しいメタデータをいじくり回すときに注意する必要があることがいくつかあります。
Windowsエディターを使用してファイルを編集すると、ファイルのLinuxメタデータが削除される場合があります。 この場合、ファイルはデフォルトの権限に戻ります。
WSLでファイルのすべての書き込みビットを削除すると、Windowsはファイルを読み取り専用としてマークします。
複数のWSLディストリビューションがインストールされている場合、またはWSLがインストールされている複数のWindowsユーザーがいる場合、それらはすべて同じファイルで同じメタデータを使用します。 各WSLユーザーアカウントのuidは異なる場合があります。 これは、権限を設定するときに考慮すべきことです。
たとえば、Windowsでファイルの書き込み権限を無効にし、ファイルをchmodして、WSLで書き込み権限が有効になっていることを示すことができます。 または、Windowsで読み取りアクセス許可を有効にして、WSLで読み取りアクセス許可を削除することもできます。 この概念を以下に示します。
ソース: マイクロソフト.