前々回でWindowsのACL(Access Control List)関連の機能(エクスプローラー、icacl.exeコマンド)を(「WindowsのACL(Access Control List)を解説する【準備編】」)、前回はACLとその中に含まれるACE(Access Control Entry)の構造を解説した(「WindowsのACL(Access Control List)を解説する【定義編】」)。今回は、icacls.exeコマンドの設定項目とWindows内部のACL設定との関係を見ていく。
icacls.exeの設定
icacls.exeのオンラインヘルプを見ると、「単純な権限」と「特定の権限」の2つをアクセス許可マスクの指定で利用できる。設定した権限とアクセスマスクの対応を調べるには、icacls.exeの「/save」オプションを利用する。
このオプションではファイルやディレクトリのACLを再割り当て可能な形式でファイルに保存する。ファイルの中身はテキスト形式で、SDDL(Security Descriptor Definition Language)という形式で表記される。この中にACEのアクセスマスクに対応した部分がある。これを見ることで、ファイルやディレクトリに設定されているACEのアクセスマスクを直接見ることができる。
具体的には、以下のような手順でファイルやディレクトリのACLが表示可能だ。
●grantオプションを使いアクセス権を設定する
icacls.exe file /grant:r 〈アクセス権〉
●ACLをSDDL形式で保存する
icacls.exe file /save 〈ファイル名〉
こうして作られた〈ファイル名〉の中身を表示させれば、fileに設定されたACLが表示される。これは、以下のような形式になっている。
D:PAI(A;;〈SDDLアクセス権〉;;;〈プリンシパル〉)
この形式で1行が1つのACLを表し、1組のカッコが1つのACEを表す。カッコの中にある2つめのセミコロンと3つめのセミコロンの間にあるのが、アクセス権を示す「ACE文字列」だ。この文字列には、「FA」のようなSDDLの定数文字列と「0x1200a9」のような16進数文字列の場合がある。前者については、以下のサイトに文字列と定数値の対応がある。
●ACE 文字列
https://docs.microsoft.com/ja-jp/windows/win32/secauthz/ace-strings
また、SDDL自体に関しては、以下のURLに解説がある。
●セキュリティ記述子定義言語
https://docs.microsoft.com/ja-jp/windows/win32/secauthz/security-descriptor-definition-language
これらとは別にSDDLの定義は、以下のURLにある。
●[MS-DTYP]: Security Descriptor Description Language(英語)
https://docs.microsoft.com/ja-jp/openspecs/windows_protocols/ms-dtyp/4f4251cc-23b6-44b6-93ba-69688422cb06
ただし、ここでACE文字列の定数値として表示される値は、WindowsのSDKに含まれているwinnt.hで定義されている定数名だ。たとえば、ACE文字列「RC」は、上記のサイトによれば、「READ_CONTROL」という値になるが、この値は、winnt.hでは、0x00020000という値だと定義されている。これを前回のマスクビットに当てはめると、17ビット目となるため、標準アクセス権の「アクセス許可の読みとり」であることがわかる。
実際に調査する場合、無関係なアクセス権は削除しておく必要がある。icacls.exeで特定のユーザー(プリンシパル)のアクセス権を削除するには、「/remove」オプションを使って、指定したプリンシパルに対応したACEをすべて削除する。
ただし、上位のオブジェクトから継承したアクセス権に関しては、直接削除できない。継承されたアクセス権を削除するには、継承自体を停止させる。継承を停止するには、「/inheritance」オプションを使って、継承アクセス権を削除(/inheritance:r)するか、継承アクセス権を個別指定アクセス権に変換する必要がある(/inheritance:d)。
この連載の記事
-
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した -
第425回
PC
無料で使えるExcelにWord、Microsoft 365のウェブ版を調べた -
第424回
PC
Windowsの基本機能であるクリップボードについてあらためて整理 -
第423回
PC
PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? -
第422回
PC
Windows 11の目玉機能が早くも終了、Windows Subsystem for Android(WSA)を振り返る -
第421回
PC
進化しているPowerToys LANで接続したマシンでキーボード/マウス共有機能などが追加 -
第420回
PC
Windowsプレビュー版に搭載されたsudoを試す -
第419回
PC
Windows Insider Previewが変わって、今秋登場のWindows 11 Ver.24H2の新機能が見えてきた? -
第418回
PC
Windows 11のスマートフォン連携は新機能が追加されるなど、いまだ進化している -
第417回
PC
Windows 11のスマートフォン連携機能をあらためて使ってみる - この連載の一覧へ