このページの本文へ

前へ 1 2 次へ

Windows Info 第324回

WindowsのACL(Access Control List)を解説する【定義編】

2022年04月24日 10時00分更新

文● 塩田紳二 編集● ASCII

  • お気に入り
  • 本文印刷

ファイル固有のアクセス権

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

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

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