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

10

Objectif: un dossier partagé dans lequel les utilisateurs peuvent créer des fichiers sans 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:

  • Dossier transversal / fichier d'exécution
  • Liste des dossiers / lecture des données
  • Lire les attributs
  • Lire les attributs étendus
  • Créer des fichiers / écrire des données
  • Lire les autorisations

Grâce à un processus d'essais et d'erreurs, j'ai constaté qu'en n'accordant pas d '«attributs d'écriture», cela a pour effet d'empêcher un utilisateur de modifier / supprimer des fichiers existants (ce que je veux). Cependant, je voudrais 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 n'est pas pertinente, je pensais que j'avais uniquement sélectionné «Créer des fichiers / Écrire des données» mais j'avais également sélectionné «Créer des dossiers / Ajouter des données».

De plus, je veux que les utilisateurs puissent créer des sous-dossiers à la racine, et j'ai trouvé qu'en accordant 'Créer des fichiers / Écrire des données', cela permet cela. Mais encore une fois, le nom suggère que cette autorisation devrait simplement 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 / écrire des 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 proposé de faire, mais je ne comprends pas pourquoi cela fonctionne?

Fitzroy
la source
Le contenu d'un fichier NTFS EST un "attribut"; à savoir l'attribut de données sans nom par défaut et peut-être un ou plusieurs attributs de données nommés.
kreemoweet
Voir également la bonne réponse ici: superuser.com/a/1145363/132727
CrazyTim

Réponses:

7

Grâce à un processus d'essais et d'erreurs, j'ai constaté qu'en n'accordant pas d '«attributs d'écriture», cela a pour effet d'empêcher un utilisateur de modifier / supprimer des fichiers existants (ce que je veux). Cependant, je voudrais vraiment une explication pour savoir précisément pourquoi cela fonctionne.

Il s'agit précisément de la façon dont une modification de fichier se produit. Lorsque vous modifiez un fichier, le système d'exploitation ne modifie pas réellement le fichier que vous modifiez. Il remplace le fichier que vous modifiez par 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 avec le même nom au même endroit. C'est pourquoi les Deleteautorisations NTFS sont nécessaires pour modifier des fichiers - en fait, si vous vérifiez Advanced permissionssur un objet NTFS, il n'y a pas d' Modifyautorisation - une modification est vraiment juste 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' Write attributesautorisation NTFS. C'est pourquoi vous ne pouvez pas modifier un fichier sans avoir l' Write attributesautorisation NTFS.

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

HopelessN00b
la source
1
"C'est pourquoi les autorisations de suppression NTFS sont nécessaires pour modifier des fichiers - en fait, si vous vérifiez les autorisations avancées sur un objet NTFS, il n'y a pas d'autorisation de modification - une modification est en réalité juste une suppression et une écriture." Pouvez-vous soutenir cela avec des faits ou des références? Parce que grâce à des tests supplémentaires, j'ai découvert que pour modifier le contenu d'un fichier texte simple (à l'aide du bloc-notes), je viens d'ajouter les autorisations suivantes: écrire des attributs, écrire des attributs étendus et créer des dossiers / ajouter des données. J'accepte que différents programmes puissent présenter un comportement différent lors de la modification d'un fichier ...
Fitzroy
... cependant, je pense que ce test prouve que "Supprimer" n'est pas requis.
Fitzroy
"Il s'agit précisément de la façon dont une modification de fichier se produit. Lorsque vous modifiez un fichier, le système d'exploitation ne modifie pas réellement le fichier que vous modifiez. Il remplace le fichier que vous modifiez par 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 du même nom au même endroit. " - est euh, assez trompeur et grossièrement inexact à de nombreux niveaux techniques différents .
user2864740
3

C'est vrai: le fait de 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 la modification d' 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 supprime pas le fichier. Mais, ce que le système d'exploitation fait est de verrouiller le fichier pour empêcher la modification simultanée. Je suppose que le verrouillage du fichier relève du concept de «modification des attributs de fichier». Par conséquent, le fait de ne pas pouvoir modifier les attributs entraîne le fait de ne pas pouvoir 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 elles ont fonctionné selon la documentation lors de mes tests.

drk.com.ar
la source
Drk - Je digère simplement votre réponse. Pour info - J'ai omis une permission dans ma question, j'aurais dû aussi lister 'Lire les attributs étendus'. Sans cette autorisation, j'ai constaté que les utilisateurs ne peuvent pas afficher le contenu d'un fichier (ils obtiennent une erreur «Accès refusé»). J'ai mis à jour ma question en conséquence.
Fitzroy
Ok, pour mon test, j'ai supposé que vous accordiez également cette autorisation. J'ai constaté que le bloc - notes n'est pas en mesure de modifier un fichier même avec l'autorisation «... / écrire des données» accordée. Voici une autre chose qui mérite d'être notée: l'autorisation d'écrire des données ou d'ajouter des données dépend de la façon dont votre application ouvre le fichier pour modification. Très probablement, le bloc-notes ouvre toujours des fichiers pour ajouter des données, même si cela n'est pas nécessaire.
drk.com.ar
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 elles ont fonctionné selon la documentation lors de mes tests. Vous avez tout à fait raison, mon erreur, je pensais que je n'avais sélectionné que "Créer des fichiers / Écrire des données" mais j'avais également sélectionné "Créer des dossiers / Ajouter des données".
Fitzroy