これまで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ビットは、ファイルやサブディレクトリに継承されたのち、それらで継承ビットがオフにするという動作になっている。
この連載の記事
-
第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形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される - この連載の一覧へ