#1 Le 23/04/2007, à 18:45
- coco1234
Droit de fichier dans une fontion de lecture
Bonsoir,
Je voulais savoir s'il est possible d'utiliser les droits d'acces à fichier dans une fonction de lecture . par exemple : fscanf(), ou autre fonction ?
merci
Hors ligne
#2 Le 24/04/2007, à 01:55
- slapierre
Re : Droit de fichier dans une fontion de lecture
J'aimerais que tu précises ta question!
D'après ce que je comprend, c'est non (la fonction ne gère pas les droits d'accès aux fichiers). La fonction - fscanf - va s'exécuter et si l'utilisateur qui lance le programme à les droits suffisants, le fichier sera lu, sinon tu vas recevoir un message d'erreur car le kernel bloque l'accès au fichier.
Pour t'en assurer, roule ton programme avec la commande strace :
$ strace ./monprog
Simon
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#3 Le 24/04/2007, à 02:10
- slapierre
Re : Droit de fichier dans une fontion de lecture
J'ai vérifié si je n'avais pas dit de conneries... l'honneur est sauf!
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
FILE *id;
id = fopen("fichier.txt","r");
if (id !=NULL) fclose(id);
return 0;
}
Compiler : $ cc -o out main.c
Tester : $ strace ./out
> Si le fichier n'existe pas :
open("fichier.txt", O_RDONLY) = -1 ENOENT (No such file or directory)
> Si on n'a pas l'accès suffisant :
open("fichier.txt", O_RDONLY) = -1 EACCES (Permission denied)
> Si tout va bien :
open("fichier.txt", O_RDONLY) = 3
Simon
Dernière modification par slapierre (Le 24/04/2007, à 19:12)
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#4 Le 24/04/2007, à 08:47
- coco1234
Re : Droit de fichier dans une fontion de lecture
en fait, je dois faire un fonction authentifier, qui verifie qu un login correspond au mot de passe donnes. Donc je fais la lecture d'un fichier.txt. mais il faut que personne d'autre n'arrive pas à y acceder.
Hors ligne
#5 Le 24/04/2007, à 19:29
- slapierre
Re : Droit de fichier dans une fontion de lecture
Le mieux serait de faire comme pour unix / linux : encrypter le mot de passe. Les fichiers /etc/passwd et /etc/shadow sont ainsi liés. Aussi, les permissions de /etc/shadow sont telles que seul le propriétaire du fichier peut l'ouvrir, et le proprio est le root!
-rw-r--r-- 1 root root 1435 2007-04-09 16:08 /etc/passwd
-rw-r----- 1 root shadow 909 2007-04-09 16:08 /etc/shadow
Si ton programme va rouler sur une une plateforme *x, pas de problème, il faudra utiliser la commande sudo pour exécuter correctement ton programme. Si c'est sous Windows, alors assure toi que le système de fichier est NTFS, et seul l'administrateur pourra accéder au fichier.
Simon
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#6 Le 25/04/2007, à 11:26
- coco1234
Re : Droit de fichier dans une fontion de lecture
je fais un programme sous linux, est ce que tu peux me dire stp comment faire pour que mon fichier(ou y a les mots de passes) devient un fichier de root?
Hors ligne
#7 Le 25/04/2007, à 21:34
- slapierre
Re : Droit de fichier dans une fontion de lecture
Avec la commande change owner :
$ sudo chown root mon_fichier
Pour changer l'utilisateur et le groupe :
$ sudo chown root:root mon_fichier
Simon
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#8 Le 30/04/2007, à 19:03
- coco1234
Re : Droit de fichier dans une fontion de lecture
Bonsoir Simon,
J'ai reussi à modifier le proprietaire de mon_fichier, mais j'arrive à le lire avec fscanf sans commande sudo: ./authentifier
J'arrive aussi à l'ouvrir manuellement!!!!!!!!!
merci beaucoup pour ton aide.
Hors ligne