ファイル固有のアクセス権
以下の表は、ファイル固有のアクセス権とビットの対応を示したものだ。オブジェクト固有のアクセス権は、全部で16個持つことが可能だが、ファイルやディレクトリでは9ビットしか使っておらず、一部のビットはファイルとディレクトリ(厳密には名前付きパイプなども対象になる)で意味が異なる。
たとえばビット0は、ファイルでは中身の読み出しを許可するものだが、ディレクトリ(フォルダー)の場合には、ディレクトリ内のファイルの一覧を読み出せるかどうかを許可するものになっている。広い意味では「同じ」ともいえるが、挙動としては異なるものだ。
また、これとは別にビット5には、ディレクトリの「横断」を可能にするアクセス権(ファイルの場合には、実行許可)がある。ビット0は具体的にはフォルダーの中身に対するアクセス権だが、ビット6は、フォルダーの一覧をすべて見せずにアクセス可能なサブフォルダーのへと移動できるようにするものだ。パスの下位にある特定のユーザーがアクセス可能なディレクトリーに、途中のディレクトリの中身を見せずにアクセスを可能にするような場合に、このアクセス権を与える。Microsoftの日本語ドキュメントでは、これを「フォルダーのスキャン」と表現しているが、元になった単語は「Traverse」である。
標準アクセス権
標準アクセス権は、領域としては8ビットあり、最大8つのアクセス権が設定できるが、現在のWindowsのACLでは、5つしか使っていない。
ここにあるアクセス権は、おもにアクセス権自体に関するものだ。ファイルやディレクトリのアクセス権を読み出せるのか、変更できるのか、所有者を変更できるのかといったことに対するアクセス権を設定する。ここにある「同期」アクセス権は、ファイルのIO操作の終了などの通知を受け取ることができるかどうかを示す。このアクセス権がないと、事実上ファイルにアクセスできない。
汎用アクセス権
汎用アクセス権には、以下の表のようなものがある。ファイルの汎用読み出しアクセス権(FILE_GENERIC_READ)は、標準アクセス権のREAD_CONTROL、SYNCHRONIZE、ファイル固有アクセス権のFILE_READ_DATA、FILE_READ_ATTRIBUTES、FILE_READ_EAが有効になっているアクセスマスクパターンに対応する。
このように汎用アクセス権はすべて、標準アクセス権、ファイル固有アクセス権のビットパターンとして扱われる。ただし、汎用アクセス権と標準、オブジェクト固有アクセス権の対応関係は、オブジェクトごとに違っている。上に挙げた例は、ファイル/ディレクトリに対するものである。
Windowsの内部では、ファイルに対するアクセス権は、これだけしか定義されておらず、実際には、標準アクセス権5つとオブジェクト固有アクセス権10個、これらのパターンに対応する汎用アクセス権4つの合計19個だけだ。しかし、icaclsコマンドで設定可能なアクセス権は27種類あり、エクスプローラーの高度なアクセス権には13個しか表示されない。次回は、今回説明したマスクビットのアクセス権とicaclsやエクスプローラーの対応関係を解説する。
![](/img/blank.gif)
この連載の記事
-
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない -
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた - この連載の一覧へ