web-dev-qa-db-fra.com

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

Objectif: un dossier partagé dans lequel les utilisateurs peuvent créer des fichiers mais ne pas les modifier ni 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:

  • Traverse Folder/Execute File
  • Dossier de liste/Données lues
  • Lire les attributs
  • Lire les attributs étendus
  • Créer des fichiers/écrire des données
  • Autorisations de lecture

Grâce à un processus d’essais et d’erreur, j’ai constaté que par PAS attribution des "attributs d’écriture", cela empêchait un utilisateur de modifier/supprimer des fichiers existants Je voudrais). Cependant, j'aimerais vraiment une explication pour savoir précisément pourquoi cela fonctionne. La seule théorie que j'ai est que la suppression/modification d'un fichier modifie les attributs du fichier? Voici une discussion dans le même sens .

EDIT - La deuxième partie de ma question est sans importance, je pensais que je n'avais sélectionné que "Créer des fichiers/écrire des données", mais j'avais également "Créer des dossiers/ajouter des données" sélectionné.

De plus, je veux que les utilisateurs puissent créer des sous-dossiers dans la racine, et j’ai constaté qu’en autorisant "Créer des fichiers/écrire des données", c’est exactement ce que l’on permet. Mais encore une fois, le nom suggère que cette autorisation devrait simplement permettre la création de fichiers, pas de dossiers, alors je ne comprends pas pourquoi cela fonctionne? Microsoft explique l'attribut 'Créer des fichiers/écrire des données' comme suit: "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'est pas fait mention de la possibilité de créer des sous-dossiers dans un dossier.

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

10
Fitzroy

Grâce à un processus d’essais et d’erreurs, j’ai constaté que le fait de ne PAS attribuer des "attributs d’écriture" empêchait un utilisateur de modifier/supprimer des fichiers existants (c’est ce que je veux). Cependant, j'aimerais vraiment une explication pour savoir précisément pourquoi cela fonctionne.

Ceci est fonction de précisément comment une modification de fichier se produit. Lorsque vous modifiez un fichier, le système d'exploitation ne modifie pas le fichier que vous modifiez. 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, la charge en mémoire (où vous la 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 NTFS Delete sont requises pour modifier les fichiers. En fait, si vous vérifiez le Advanced permissions sur un objet NTFS, il n'y a pas d'autorisation Modify; une modification est en réalité simplement une suppression et une écriture.

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

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

7
HopelessN00b

C'est vrai: ne pas avoir la permission 'Write Attributes' empêche l'utilisateur de modifier ses fichiers. Et selon la documentation de Microsoft, cela n’a aucun sens. Mais modifier un fichier n'implique pas sa suppression et sa recréation. Lorsqu'une application ouvre un fichier pour modification, le système d'exploitation ne le supprime pas. Cependant, le système d'exploitation verrouille le fichier pour empêcher toute modification simultanée. Je suppose que le verrouillage du fichier relève du concept de "modification des attributs de fichier". Ainsi, ne pas pouvoir changer d'attribut entraîne l'impossibilité de modifier le fichier.

Pour la deuxième partie de votre question, je ne peux pas reproduire cela. Deux autorisations différentes s'appliquent à un dossier: "Créer des fichiers/..." et "Créer des dossiers/..." et elles fonctionnaient conformément à la documentation au cours de mes tests.

2
drk.com.ar