このページの本文へ

前へ 1 2 次へ

Windows Info 第326回

WindowsのACL(Access Control List) エクスプローラーが扱うACL

2022年05月08日 10時00分更新

文● 塩田紳二 編集● ASCII

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

エクスプローラーでは、ファイルやディレクトリのアクセス許可を編集するためのGUIが用意されている。これは、結果的にはACLを操作するためのものだが、ファイル・ディレクトリ専用に操作が簡略化されている

 これまで3回に渡り(「WindowsのACL(Access Control List)を解説する【準備編】」「WindowsのACL(Access Control List)を解説する【定義編】」「icacls.exeコマンドの設定項目とWindows内部のACL設定との関係」)、Windows ACLについて解説してきたが、今回は最後にエクスプローラーのプロパティにある「アクセス許可エントリ」(「セキリティタブ」→「詳細ボタン」)で表示される「アクセス許可」などと、ACLの関係を解説する。

エクスプローラーのアクセス権設定

 エクスプローラーでファイルやディレクトリを選択して右クリックメニューからプロパティダイアログを開き、セキュリティタブにある「詳細設定」ボタンを使うことで、セキュリティの詳細設定ダイアログが開く。

 ここで、ACLによるアクセス制御の対象となるプリンシパルを選び、下の「表示」あるいは「編集」ボタンを押すと、「アクセス許可エントリ」ダイアログボックスが開く。これが、ファイルの特定のプリンシパルのACLに含まれるACEを表す。ここには、「基本のアクセス許可」と「高度なアクセス許可」の2つがあるが、説明の都合からまずは後者の「高度なアクセス許可」から解説する。

エクスプローラーでファイルやディレクトリのプロパティを表示させ、セキュリティタブを開くとファイルのアクセス許可に関する情報が表示される

セキュリティの詳細設定にある「アクセス許可」では、ファイルやディレクトリに対して設定してあるACLを簡略化したリストを表示する。リストで項目を選択して表示や編集ボタンを押すことで「アクセス許可エントリ」のダイアログが開く

 このダイアログは、対象がファイルかディレクトリかで形式が違う。

特定のプリンシパルに対して設定されているACEに対応するのが、セキュリティの詳細設定ダイアログで、これはファイル用のもの。ファイルはACLでいうオブジェクトに相当し、子要素を持たないため、継承関係の設定項目がない

ディレクトリのアクセス許可エントリには、継承方法を示す「適用先」ドロップダウンリストと継承を子要素のみに限定するチェックボックスがある

 対象がディレクトリの場合、ダイアログボックス上部に「適用先」のドロップダウンリストがあり、アクセス許可の下部に「これらのアクセス許可を、……適用する」というチェックボックスがある。ディレクトリが「親」としてファイルやサブディレクトリにアクセス権を継承させる役割があるからだ。

 継承は、ACE(Access Control Entry)のヘッダ部分で制御される。ここにはACEフラグと呼ばれる5つのビットがある。

 このうち、1つはACEが親から継承したものであることを示すビットで、残りの4ビットは、継承の振る舞いを指定するために「親」となるディレクトリに設定されるビットだ。ファイルシステムの中では、ディレクトリのみが親となって、子となるファイルやサブディレクトリにACLを継承させる。なので、継承の指定はディレクトリだけですることができる。

 4つのビットは、「オブジェクトに継承させるか」「コンテナーに継承させるか」「子には継承させるが、孫以下には継承させない」「継承させるだけで子には適用しない」という動作を表す。icacls.exeでは、これをアルファベットで表記している。

 エクスプローラーでは、このビットのうち、「NO_PROPAGATE_INHERIT_ACE」(NP)ビット以外の3つの組み合わせを適用先で指定する。

ディレクトリのアクセス許可エントリでは、ACEフラグの3つのビットの組み合わせをフォルダーとディレクトリの7つの継承パターンとして選択できるようになっている

 この3ビットの論理上の組み合わせは8通りになるが「INHERIT_ONLY_ACE」ビット単体では無意味なので、実際には7通りだ。それを文章で表現したものが、アクセス許可エントリのドロップダウンリストである。

 そして、「NO_PROPAGATE_INHERIT_ACE」(NP)ビットに対応するのが、アクセス許可の下にある「これらのアクス許可を、このコンテナーの中にあるオブジェクトやコンテナーにのみ適用する」というチェックボックス。このNPビットは、ファイルやサブディレクトリに継承されたのち、それらで継承ビットがオフにするという動作になっている。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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