「アクセス許可の順序が正しくありません。これによりいくつかのエントリが無効になる可能性があります。」の警告について

Last Update: feedback 共有

本記事はマイクロソフト社員によって公開されております。

こんにちは。Windows Commercial Support Directory Services チームです。

今回は、ファイルのプロパティより [セキュリティ] タブを開いた際に出力される場合がある以下の警告メッセージについて、その原因と対処方法をご案内いたします。


事象について


ファイルのプロパティより、[セキュリティ] タブを開いたタイミングで以下のようにメッセージが表示されます。


原因について


本メッセージは、アクセス許可のリストである DACL (Discretionary Access Control List) の順序が正しくないために表示されます。
DACL のアクセス権の順序につきましては、以下の公開情報に記載のとおり決められております。

DACL 内の ACE の順序

1. 明示的な ACE はすべて、継承された ACE の前のグループに配置されます。
2. 明示的な ACE のグループ内では、アクセスが拒否された ACE は、アクセスが許可される ACE の前に配置されます。
3. 継承された ACE は、継承された順序で配置されます。 子オブジェクトの親から継承された ACE は、
  最初に、次に祖父母から継承された ACE、オブジェクトのツリーの上に来ます。
4. 継承された ACE のレベルごとに、アクセス拒否 ACE はアクセスが許可される ACE の前に配置されます。

AddAccessAllowedAceEx や AddAccessAllowedObjectAce などの関数は、ACL の末尾に ACE を追加します。
ACE が適切な順序で追加されるようにするのは、呼び出し元の責任です。

通常、Windows のエクスプローラー や コマンド (Set-Acl や icacls /grant 等) でアクセス許可の設定を行った場合は、事前に検証が行われ正しい順序に並び替えられた後 ACE が設定されます。

しかし、公開情報のとおり、AddAccessAllowedAceEx 関数や AddAccessAllowedObjectAce 関数(※1)など特定の関数を明示的に呼び出した場合は、現在の ACL の末尾に追加される動作となります。このような場合、上記の警告メッセージが表示される動作となります。

警告メッセージが表示されるファイルについては、何らかのアプリケーションが AddAccessAllowedAceEx 関数や AddAccessAllowedObjectAce 関数を呼び出し、アクセス許可の設定を行ったことが想定されますが、何がこの事象を引き起こしているのかについては、事象を引き起こした瞬間のログを採取する必要があります。
このメッセージが出るタイミングでは、既にこの順序が正しくない状態となった事象の発生後となりますので、恐れ入りますが、要因の特定が困難でございます。

(※1) 参考情報:
AddAccessAllowedAceEx 関数
AddAccessAllowedObjectAce 関数

対処について


この状況に対処するためには、事象発生フォルダーの [セキュリティ] タブを開き、[編集] ボタンをクリックした後に表示される以下のダイアログにおいて、[並べ替え] をクリックして正しい順序に並び替える必要がございます。

なお、この [並べ替え] の操作を実行するためには、対象のファイルに対して “アクセス許可の変更” 権限が必要です。
また、弊社事例においては、この [並べ替え] の実行後、対象ファイルのアクセス権の一部が消失したといった報告がございました。
このため、実施いただく際には、対象ファイルに対して フルコントロール権限 を持ち、且つ 所有者 であるアカウントで実施いただくことを推奨するとともに、念のため以下の方法にて icacls コマンド(※2)を利用して対象ファイルの DACL のバックアップを取得いただけますようお願いいたします。

DACL のバックアップ

icacls <対象ファイルパス> /save <バックアップファイルパス>

1
2
// C:\temp\example.txt のバックアップを取得する場合
icacls C:\temp\example.txt /save C:\temp\example_bk.bin

DACL のリストア

icacls <対象ファイルが格納されたフォルダーパス> /restore <バックアップファイルパス>

1
2
// C:\temp\example_bk.bin を利用して C:\temp\example.txt へリストアする場合
icacls C:\temp /restore C:\temp\example_bk.bin

(※2) 参考情報:icacls

その他


並べ替えを行う ACL に拒否の ACE が含まれていた場合、[並べ替え] を実行したタイミングに以下のメッセージが表示されます。
これは、同一のアカウントに関して、許可と拒否の両方の ACE が存在する場合、拒否が優先されるといったアクセス許可の仕様動作について示しているものとなりますので、[はい] をクリックいただければ問題ございません。


本投稿が少しでも皆様のお役に立てば幸いです。
※ 本情報の内容(リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

更新履歴


2024/11/14 : 本ブログの公開