これまで3回に渡り(「WindowsのACL(Access Control List)を解説する【準備編】」、「WindowsのACL(Access Control List)を解説する【定義編】」、「icacls.exeコマンドの設定項目とWindows内部のACL設定との関係」)、Windows ACLについて解説してきたが、今回は最後にエクスプローラーのプロパティにある「アクセス許可エントリ」(「セキリティタブ」→「詳細ボタン」)で表示される「アクセス許可」などと、ACLの関係を解説する。
エクスプローラーのアクセス権設定
エクスプローラーでファイルやディレクトリを選択して右クリックメニューからプロパティダイアログを開き、セキュリティタブにある「詳細設定」ボタンを使うことで、セキュリティの詳細設定ダイアログが開く。
ここで、ACLによるアクセス制御の対象となるプリンシパルを選び、下の「表示」あるいは「編集」ボタンを押すと、「アクセス許可エントリ」ダイアログボックスが開く。これが、ファイルの特定のプリンシパルのACLに含まれるACEを表す。ここには、「基本のアクセス許可」と「高度なアクセス許可」の2つがあるが、説明の都合からまずは後者の「高度なアクセス許可」から解説する。
このダイアログは、対象がファイルかディレクトリかで形式が違う。
対象がディレクトリの場合、ダイアログボックス上部に「適用先」のドロップダウンリストがあり、アクセス許可の下部に「これらのアクセス許可を、……適用する」というチェックボックスがある。ディレクトリが「親」としてファイルやサブディレクトリにアクセス権を継承させる役割があるからだ。
継承は、ACE(Access Control Entry)のヘッダ部分で制御される。ここにはACEフラグと呼ばれる5つのビットがある。
このうち、1つはACEが親から継承したものであることを示すビットで、残りの4ビットは、継承の振る舞いを指定するために「親」となるディレクトリに設定されるビットだ。ファイルシステムの中では、ディレクトリのみが親となって、子となるファイルやサブディレクトリにACLを継承させる。なので、継承の指定はディレクトリだけですることができる。
4つのビットは、「オブジェクトに継承させるか」「コンテナーに継承させるか」「子には継承させるが、孫以下には継承させない」「継承させるだけで子には適用しない」という動作を表す。icacls.exeでは、これをアルファベットで表記している。
エクスプローラーでは、このビットのうち、「NO_PROPAGATE_INHERIT_ACE」(NP)ビット以外の3つの組み合わせを適用先で指定する。
この3ビットの論理上の組み合わせは8通りになるが「INHERIT_ONLY_ACE」ビット単体では無意味なので、実際には7通りだ。それを文章で表現したものが、アクセス許可エントリのドロップダウンリストである。
そして、「NO_PROPAGATE_INHERIT_ACE」(NP)ビットに対応するのが、アクセス許可の下にある「これらのアクス許可を、このコンテナーの中にあるオブジェクトやコンテナーにのみ適用する」というチェックボックス。このNPビットは、ファイルやサブディレクトリに継承されたのち、それらで継承ビットがオフにするという動作になっている。
この連載の記事
-
第436回
PC
Copilot+PCとともにWindowsのデバイス間連携に大きな変化!? Project ROMEの逆襲? -
第435回
PC
Windows Terminal Preview v1.21では、前回終了時のタブとその表示内容を復元できるように -
第434回
PC
AIの急速な導入がWindowsの予定を変えた!? Windows 12がすぐには出ない可能性 -
第433回
PC
Windows 11の2つのウィジェットを調べる -
第432回
PC
ウェブブラウザが切り開いたWindowsでのタブアプリケーション -
第431回
PC
Windows上でユニコードを「見る」方法 -
第430回
PC
WindowsからWordPadが廃止! RTF(Rich Text Format)はどうなる? -
第429回
PC
Windows Updateの「利用可能になったらすぐに最新の更新プログラムを入手する」はオンにした方がいいか? -
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した - この連載の一覧へ