Empecher l ecriture dans un fichier et la modification (windows)

ryoussef19 Messages postés 34 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 25 août 2007 - 8 août 2007 à 21:01
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 9 août 2007 à 09:22
est ce que quelqu'un pourrait me dire comment je pourrais rendre un fichier que pour la lecture, de telle facon que personne ne peut le modifier
c possible sous unix , mais est il possible sous windows ??

12 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2007 à 21:40
SetFileAttributes(fname, FILE_ATTRIBUTE_READONLY);

Pour autant, un prog pourra modifier le flag avant d'y toucher.

ciao...
BruNews, MVP VC++
0
ryoussef19 Messages postés 34 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 25 août 2007 1
8 août 2007 à 21:45
en fait je travaille sous visual studio 2005 (visual c++)
et en fait j'ai déjà essayé une fct dans le meme style mais elle presente deux défauts :

le fichier peut etre modifié et enregistré sous un autre nom

si tu clik droit sur le fichier et t accede aux propriétés tu peux decocher a nouveau lecture seule et le fichier redevient normal

ce ke je veux c une fonction pour toujours

qu est ce que tu veux dire par : un prog pourra modifier le flag avant d'y toucher?

merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2007 à 21:55
le flag est FILE_ATTRIBUTE_READONLY ou autre.

Un fichier intouchable n'existe pas.
Un moyen serait d'ouvrir au boot un handle exclusif dessus avec SHARE_READ, nécessite un prog résident, bof bof.

ciao...
BruNews, MVP VC++
0
ryoussef19 Messages postés 34 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 25 août 2007 1
8 août 2007 à 21:58
comment ca se fait que sur unix est fesable .. il y a forcement un moyen ?
par exemple je peut associer un fichier à son créateur est tout autre utilisateur ne peux que le lire et pas ecrire ou modifier
est ce possible ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 août 2007 à 22:04
tu disais "PERSONNE ne peut le modifier", faudrait savoir...

Dans MSDN, regarde les fonctions sécurité:
ConvertStringSecurityDescriptorToSecurityDescriptor()
etc...

ciao...
BruNews, MVP VC++
0
ryoussef19 Messages postés 34 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 25 août 2007 1
8 août 2007 à 22:58
ConvertStringSecurityDescriptorToSecurityDescriptor()
mais g regardé c'est quoi le rapport avec les fichiers ?
0
vinc1008881 Messages postés 257 Date d'inscription dimanche 22 août 2004 Statut Membre Dernière intervention 29 septembre 2010 3
8 août 2007 à 23:07
Sous linux c'est fesable car linux est un système qui gère les priorités, par exemple un utilisateur classique ne peut pas toucher au fichier root, impossible de faire ça sous Windows de manière propre.
0
ryoussef19 Messages postés 34 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 25 août 2007 1
8 août 2007 à 23:09
là je dois faire ca dans le cadre de mon stage et mon tuteur me dit que c possible, donc je sais pas quoi faire , sinon si c impossible comment lui prouver que c impossible !
0
vinc1008881 Messages postés 257 Date d'inscription dimanche 22 août 2004 Statut Membre Dernière intervention 29 septembre 2010 3
8 août 2007 à 23:13
il y a un moyen assez sale, non vraiment crade pour faire ce que tu veux : tu sais qu'on peux pas supprimer les fichiers executées ou certain fichiers chargé par des executables, bah voilà tu peux toujours tenter mais perso je vois pas trop désolé
0
ryoussef19 Messages postés 34 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 25 août 2007 1
8 août 2007 à 23:17
ca je sais je l ouvre avec un programme en utilisant un stream  et tant que le programme s execute le fichier est intouchable mais dès que le programme est fermé le fichier redeviens normal
0
vinc1008881 Messages postés 257 Date d'inscription dimanche 22 août 2004 Statut Membre Dernière intervention 29 septembre 2010 3
8 août 2007 à 23:22
tiens ça me fait rapeller le fichier index.dat dans je sais plus quel dossier, impossible à modifier etc... mais comment ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 août 2007 à 09:22
J'avais mis 'etc...' pour indiquer que tu regardes les fonctions SECURITE de MSDN.
Le but étant d'appliquer un SECURITY_DESCRIPTOR au fichier.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous