Autorisations NTFS – Créer des fichiers et des dossiers, mais empêcher la suppression et la modification

Objectif: Un dossier partagé auquel les utilisateurs peuvent créer des fichiers, mais pas les modifier ou les supprimer. Les utilisateurs devraient également pouvoir créer des sous-dossiers.

J'ai accordé à mon groupe de sécurité les autorisations NTFS avancées suivantes:

  • Passer le dossier / Exécuter le fichier
  • List Folder / Read Data
  • Attributs de lecture
  • Lire les attributs étendus
  • Créer des fichiers / écrire des données
  • Autorisations de lecture

Grâce à une procédure d'essai et d'erreur, j'ai constaté qu'en n'accordant pas 'Write Attributes', cela a pour effet d'empêcher un utilisateur de modifier / supprimer des fichiers existants (ce que je veux). Cependant, j'aimerais vraiment une explication sur la raison pour laquelle cela fonctionne. La seule théorie que j'ai, c'est que la suppression / modification d'un fichier modifie les attributs du fichier? Voici une discussion dans le même ordre d'idées .

EDIT – La deuxième partie de ma question n'est pas pertinente, j'ai pensé que je n'avais sélectionné que 'Create Files / Write Data', mais j'ai également créé "Create Folders / Append Data".

De plus, je veux que les utilisateurs puissent créer des sous-dossiers dans la racine, et j'ai constaté qu'en accordant «Créer des fichiers / écrire des données», cela permet simplement. Mais encore une fois, le nom suggère que cette permission devrait permettre la création de fichiers, pas de dossiers, donc je ne comprends pas pourquoi cela fonctionne? L'explication de Microsoft de l'attribut «Créer des fichiers / écriture de données» est «Pour les dossiers, spécifie si un utilisateur peut créer des fichiers dans le dossier. Pour les fichiers, spécifie si un utilisateur peut modifier des fichiers ou écraser des données». Il n'y a aucune mention de la possibilité de créer des sous-dossiers dans un dossier?

Donc, fondamentalement, j'ai réalisé ce que je me suis mis à faire, mais je ne comprends pas pourquoi cela fonctionne?

Grâce à une procédure d'essai et d'erreur, j'ai constaté qu'en n'accordant pas 'Write Attributes', cela a pour effet d'empêcher un utilisateur de modifier / supprimer des fichiers existants (ce que je veux). Cependant, j'aimerais vraiment une explication sur la raison pour laquelle cela fonctionne.

C'est une fonction de la manière précise d'une modification du fichier. Lorsque vous modifiez un fichier, le système d'exploitation ne modifie pas réellement le fichier que vous éditez. Il remplace le fichier que vous éditez avec la copie que vous avez modifiée. Donc, essentiellement, une modification de fichier prend une copie du fichier d'origine, le charge dans la mémoire (où vous le modifiez), supprime le fichier d'origine et crée un nouveau fichier portant le même nom au même endroit. C'est pourquoi les autorisations de Delete NTFS sont nécessaires pour modifier les fichiers – en fait, si vous vérifiez les Advanced permissions sur un objet NTFS, il n'y a pas d'autorisation Modify : une modification n'est vraiment qu'une suppression et une écriture.

Ainsi, afin de créer cette nouvelle copie d'un fichier, il doit écrire les attributs de fichier de ce nouveau fichier … et, bien sûr, les attributs d'écriture requièrent l'autorisation de l' Write attributes NTFS. C'est pourquoi vous ne pouvez pas modifier un fichier sans avoir les Write attributes NTFS.

Plus précisément, grâce à un échange avec Fitzroy , l' attribut de fichier NTFS qui doit être écrit dans le contexte de sécurité de l'utilisateur (ce qui ne peut pas être, sans l'autorisation Write Attributes ), lors de la modification d'un fichier, mais pas lors de la création d'un tout nouveau , Serait le LastModificationTime du fichier. Ceci fait partie de l'attribut Standard Information , selon l'un des développeurs de Microsoft Core Team .

C'est vrai: ne pas avoir l'autorisation "Write Attributes" permet à l'utilisateur de ne pas pouvoir modifier ses fichiers. Et selon la documentation Microsoft, cela n'a pas de sens. Mais la modification d' un fichier n'implique pas la suppression et la récréation de celui-ci. Lorsqu'une application ouvre un fichier à modifier, le système d'exploitation ne supprime pas le fichier. Mais, ce que fait le système d'exploitation, c'est bloquer le fichier pour éviter toute modification simultanée. Je suppose que le verrouillage du fichier relève de la notion de «modification des attributs de fichiers». Ainsi, ne pas pouvoir modifier les attributs ne permet pas de modifier le fichier.

Pour la deuxième partie de votre question, je ne peux pas reproduire cela. Il existe deux autorisations différentes qui s'appliquent à un dossier: 'Créer des fichiers / …' et 'Créer des dossiers / …' et ils ont fonctionné selon la documentation pendant mes tests.