Empêcher un programme de supprimer des fichiers dans Windows?

8

J'ai un programme exécutable (pas de code source) qui crée des fichiers temporaires dans un certain dossier puis les supprime à la fin. J'ai des problèmes avec le programme et j'aimerais examiner les fichiers temporaires pour voir s'il y a quelque chose que je peux faire sans changer la source.

Existe-t-il un moyen d'empêcher le programme de supprimer des fichiers ou d'empêcher tous les programmes de supprimer des fichiers dans un certain dossier?

JoelFan
la source
1
Pourquoi ne pas examiner les fichiers pendant l'exécution du programme? Le programme garde-t-il tous les fichiers temporaires qu'il crée verrouillés?
joeqwerty le
Il les crée et les supprime trop rapidement
JoelFan

Réponses:

9

Vous pouvez modifier l'ACL sur le dossier en question afin que le compte courant de l'exécutable (très probablement vous ) peuvent créer, écrire, modifier les fichiers là - dedans, mais pas supprimer. Deux problèmes:

  1. Vous pourriez bien sûr provoquer le plantage du programme

  2. Vous devrez ensuite reprendre le contrôle du dossier (prendre possession, réinitialiser toutes les autorisations, etc.) pour pouvoir supprimer les fichiers

Izzy
la source
4
+1 Avec les ACL NTFS, une Denyentrée est prioritaire Allow. Vous pouvez ajouter une entrée pour Deny Deleteet / ou Deny Delete Subfolders/Filespour Everyonedans le répertoire. Nous le faisons fréquemment pour capturer des fichiers d'extrait / téléchargement d'installation de logiciels.
jscott
3
@jscott: De MS: les autorisations Inherited Deny n'empêchent pas l'accès à un objet si l'objet possède une entrée d'autorisation Autoriser explicite. Les autorisations explicites ont priorité sur les autorisations héritées, même les autorisations Refuser héritées. technet.microsoft.com/en-us/library/cc736316(WS.10).aspx . L'article est ancien mais à ma connaissance le comportement n'a pas changé.
joeqwerty
0

Puisqu'il crée les fichiers, l'utilisateur qu'il exécute est le propriétaire des fichiers et sera en mesure de les supprimer, donc je ne pense pas qu'il y ait quoi que ce soit que vous pouvez configurer pour NTFS CACLS sur le répertoire parent à l'avance.

Vous pouvez essayer d'ouvrir les fichiers dans un autre programme vous-même pour voir si cela empêchera la suppression. Vous pouvez également essayer de copier et / ou de déplacer les fichiers dès qu'ils sont créés dans un autre dossier.

mfinni
la source
1
La propriété remplace une seule autorisation de fichier - possibilité de modifier les ACL de l'objet. Vous pouvez toujours vous refuser tout le reste (y compris même les "autorisations de lecture").
user1686
à moins bien sûr que vous ayez défini le contrôle total du propriétaire du créateur
tony roth