web-dev-qa-db-ja.com

親のACLを変更するときに、WindowsがすべてのNTFS子オブジェクトを処理するのはなぜですか?

親のACLを変更するときに、WindowsがすべてのNTFS子オブジェクトを処理するのはなぜですか?

[すべての子オブジェクトのアクセス許可を置き換える...]ボックスをオンにした場合、この動作が予想されますが、このボックスをオフのままにしても、Windowsはすべての子を処理します。

10
Corey

Windowsでは、ファイル権限は動的に継承されません。つまり、ファイルを開こうとすると、WindowsはそのファイルのACLのみを確認し、ファイルを含むツリー内のディレクトリのACLは確認しません。つまり、ディレクトリのACLを変更すると、Windowsは影響を受けるディレクトリ内のすべてのファイルとサブディレクトリの権限をすぐに更新する必要があります。

Windowsでは、ACLのinherit設定は、動的継承の形式を示していません。これは、親ディレクトリのACLが変更されたときに、継承フラグが設定されているツリー内のすべてのファイルとサブディレクトリも更新する必要があることを示す単なるフラグです。

Novell NetWareを覚えるのに十分な年齢の人は、これがNetWareとの大きな違いの1つであることを覚えています。歴史は問題を根本的にさせていませんでしたが、どちらのアプローチがより良いかについて当時多くの議論がありました。動的ACLでは、ファイルを開こうとするときにOSがすべての親ディレクトリのACLをチェックする必要がありますが、ACLの変更は迅速です。 Windowsでは、ファイルを開くときにチェックする必要があるACLは1つだけですが、ご存じのとおり、ディレクトリACLの変更には時間がかかる場合があります。

10
John Rennie

親オブジェクトから権限を継承するように構成されている子オブジェクトは、処理する必要があります。子オブジェクトに対して明示的に定義された権限は影響を受けません。

オプション「すべての子オブジェクトのアクセス許可を置き換える」は、すべての子オブジェクトにアクセス許可を伝達するだけでなく、すべての子オブジェクトに対して明示的に定義されたアクセス許可を削除して置き換えます。

13
Appleoddity

デフォルトでは、子フォルダは親フォルダから権限を継承します。親フォルダー(このフォルダー、サブフォルダー、ファイル)のアクセス許可を追加または変更するときにデフォルトのスコープを想定すると、すべての子フォルダーが更新され、親でのアクセス許可の変更が反映されます。

あなたが参照しているチェックボックスは、すべての子フォルダで明示的に定義されたすべての権限を削除し、それらを親から継承可能な権限で置き換え、子フォルダで権限の継承を再度有効にする「1回限り」の操作です。

5
joeqwerty