Pourquoi Windows traite-t-il tous les objets enfants NTFS lors de la modification de l'ACL d'un parent?

10

Pourquoi Windows traite-t-il tous les objets enfants NTFS lors de la modification de l'ACL d'un parent?

Je m'attendrais à ce comportement si j'avais coché la case «Remplacer toutes les autorisations d'objet enfant ...», mais même lorsque cette case n'est pas cochée, Windows traitera tous les enfants.

Corey
la source
@Ben Cela n'est pas fait par le shell, car la cascade d'autorisations héritées doit être répliquée sur tous les objets enfants avec l'héritage activé, donc cela doit être fait même lors de l'appel direct de l'API Windows. Pour info: les autorisations sont répliquées pour des raisons de performances.
Andreas

Réponses:

10

Dans Windows, les autorisations de fichiers ne sont pas héritées dynamiquement. En d'autres termes, lorsqu'une tentative d'ouverture d'un fichier est effectuée, Windows ne regarde que l'ACL de ce fichier et non les ACL des répertoires de l'arborescence contenant le fichier. Cela signifie que lorsque vous modifiez l'ACL d'un répertoire, Windows doit mettre à jour immédiatement les autorisations de tous les fichiers et sous-répertoires du répertoire affecté.

Sous Windows, le paramètre d' héritage dans une ACL n'indique aucune forme d'héritage dynamique. Il s'agit simplement d'un indicateur pour indiquer que lorsque la liste de contrôle d'accès d'un répertoire parent est modifiée, tous les fichiers et sous-répertoires de l'arborescence dont l'indicateur d'héritage est défini doivent également être mis à jour.

Ceux d'entre nous assez âgés pour se souvenir de Novell NetWare se souviendront que c'était l'une des grandes différences par rapport à NetWare car dans NetWare, l'héritage des autorisations est (était?) Dynamique. Il y avait beaucoup de débats à l'époque sur la meilleure approche, bien que l'histoire ait rendu la question sans objet. Les ACL dynamiques nécessitent que le système d'exploitation vérifie les ACL de chaque répertoire parent au moment où une tentative d'ouverture du fichier est effectuée, mais la modification des ACL est rapide. Dans Windows, l'ouverture d'un fichier ne nécessite qu'une seule ACL à vérifier, mais comme vous l'avez constaté, cela signifie que la modification d'un ACL de répertoire peut être lente.

John Rennie
la source
1
Cela est parfaitement logique. Les ACL sont lues beaucoup plus qu'elles ne sont écrites, il est donc logique de mettre en cache la "valeur héritée" pour un accès en lecture plus rapide, au prix d'une complexité accrue dans le cas d'utilisation d'écriture plus rare.
Alexander - Reinstate Monica
@Alexander: Ce que je ne comprends pas, c'est pourquoi cette complexité doit être exposée à l'utilisateur final. Pourquoi ne pas mentir et dire à l'utilisateur final "c'est dynamique" mais mettre les choses en cache en interne?
Kevin
@Kevin - parce que la propagation des autorisations peut prendre un certain temps et que pendant cette période, l'application des autorisations pourrait ne pas se produire comme prévu?
davidbak
13

Tout objet enfant configuré pour hériter de ses autorisations de l'objet parent devra être traité. Les autorisations définies explicitement sur les objets enfants ne sont pas affectées.

L'option «Remplacer les autorisations sur tous les objets enfants» propagera non seulement les autorisations à tous les objets enfants, mais supprimera et remplacera également toutes les autorisations définies explicitement sur tous les objets enfants.

Appleoddity
la source
5

Par défaut, les dossiers enfants héritent des autorisations du dossier parent. En supposant la portée par défaut lorsque vous ajoutez / modifiez des autorisations sur le dossier parent (ce dossier, sous-dossiers et fichiers), tous les dossiers enfants seront mis à jour pour refléter la modification des autorisations sur le parent.

La case à cocher à laquelle vous faites référence est une opération "ponctuelle" qui supprimera toutes les autorisations définies explicitement sur tous les dossiers enfants et les remplacera par des autorisations héritables du parent et réactivera l'héritage des autorisations sur les dossiers enfants.

joeqwerty
la source