ファイル固有のアクセス権
以下の表は、ファイル固有のアクセス権とビットの対応を示したものだ。オブジェクト固有のアクセス権は、全部で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やエクスプローラーの対応関係を解説する。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ














