IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Cacher un fichier de manière portable


Sujet :

Langages de programmation

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut Cacher un fichier de manière portable
    Bonsoir, je développe depuis quelques mois un programme utilisant une base de données, en l'occurrence des fichiers .txt, il ne faut pas que l'utilisateur ait accès à leur contenu ou puisse les effacer, j'ai donc décidé de les cacher. Je ne connais que la commande attrib sous Windows, et qui est exécutée au moyen de la fonction system() de windows.h. Seulement, cette solution n'est pas portable comme vous vous en doutez, je cherche donc un moyen d'effectuer cette opération afin que cela fonctionne aussi bien sous Windows que sous Linux. Je n'ai rien trouvé en cherchant sur Google.

    Si quelqu'un connaît un moyen ..

  2. #2
    Invité
    Invité(e)
    Par défaut ...
    Pourquoi ne pas simplement proteger les donnees par un cryptage.

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2013
    Messages
    309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 309
    Points : 105
    Points
    105
    Par défaut
    J'y ai pensé, mais cela n'empêche pas les fichiers d'être effacés

  4. #4
    Invité
    Invité(e)
    Par défaut ...
    Je pense que cacher les fichiers n’empêchera pas leurs suppression.
    Mais vous pouvez toujours utiliser la compilation conditionnelle grâce aux macros.
    un bon vieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #ifdef ( OS_Windows)
    #elif
    #endif
    feras peut-être l'affaire.

  5. #5
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par KevinduC Voir le message
    il ne faut pas que l'utilisateur ait accès à leur contenu ou puisse les effacer, j'ai donc décidé de les cacher.
    ça n'a rien de logique, du coup dans le sens contraire si tu veux cacher un fichier tu fais quoi, tu le rends ineffaçable ? ^^

    Je ne connais que la commande attrib sous Windows, et qui est exécutée au moyen de la fonction system()
    à chaque fois que tu fais un truc comme ça y'a un chaton qui meurt

    alors pour te répondre... sous linux la commande chattr +i va permettre de rendre immuable un fichier, et donc empêcher qu'on puisse l'effacer, sauf que chattr n'est pas forcément installé sur la machine, donc on ne peut pas dire que ce soit tellement portable non plus

    si tu veux empêcher que les utilisateurs aillent fouiner comme dit Ratator, au plus simple tu peux chiffrer tes données

    sinon si tu veux vraiment quelque chose de fiable l'idée c'est d'avoir un serveur et un client, la partie serveur de ton programme s'exécute avec des droits spéciaux (user SERVEUR par exemple) tandis que la partie client est lancée par l'utilisateur humain (user TOTO)
    de fait les données que tu souhaites préserver sont dans des fichiers qui appartiennent à l'utilisateur SERVEUR et l'utilisateur TOTO ne peut ni y accèder ni les effacer; ça revient à configurer correctement les droits sur le répertoire qui contient les données

    dans le même esprit (modèle client/serveur qui tournent sur des utilisateurs différents pour scinder les permissions) tu pourrais aussi envisager de stocker les données dans une base de données par exemple

    sinon et pour boucler sur ton idée d'utiliser la commande attrib pour cacher les fichiers, sous linux pour cacher un fichier il suffit de le préfixer par un point . tout simplement, comme c'est le cas pour des fichiers classiques comme .bashrc, .profile ou .bash_history par exemple

    si il s'agit de programmer en C, autant programmer en C sous linux il suffira donc d'un fopen(".fichier_caché", "w") en gros, sous windows il faudra jouer avec les fonctions GetFileAttributes et SetFileAttributes, le tout en jouant aussi du #ifdef _WIN32/#ifdef linux

  6. #6
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 149
    Points : 28 116
    Points
    28 116
    Par défaut
    Bonjour,

    Quels sont tes OS cibles ? Visiblement, il y a au moins une version de Windows, et puis ? Linux ? AIX ? Solaris ? *BSD ? HPUX ? encore d'autres ?

    Et que veux-tu empecher exactement ? La modification manuelle et la suppression, rien d'autre ?

    Sous *n*x, tu as une gestion des droits assez fine, donc tu peux essayer de jouer la dessus pour interdire la modification, mais pas la suppression. chattr est dispo sous Linux, mais pas sous AIX 7.1 ni Solaris 10, donc a voir si tu as le droit d'installer ce logiciel en plus -- pour peu qu'il existe -- ou non, si tu en as besoin bien sur.

    Enfin, sous tous les OS, il y a toujours un moyen d'avoir des privileges permettant d'effacer un fichier. Est-ce que cela est un probleme que tu dois gerer, ou bien est-ce que tu peux supposer que si l'utilisateur est admin, il sait ce qu'il fait ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  7. #7
    Invité
    Invité(e)
    Par défaut ...
    Je sais pas comment ça marche sur les autres OS, mais généralement sur Windows un fichier ouvert ne peut-être supprimer.
    Alors débrouille toi pour que tous tes fameux fichiers soit ouvert au démarrage de l'OS.

Discussions similaires

  1. [C\C++]Cacher un fichier
    Par The Lord of Nesquik dans le forum Windows
    Réponses: 8
    Dernier message: 08/09/2006, 22h10
  2. Envoyer des fichiers de manière répétée
    Par Micheal1221 dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/07/2006, 10h05
  3. Réponses: 2
    Dernier message: 16/03/2006, 13h49
  4. transférer un fichier de manière sécurisé par ftp
    Par jack_1981 dans le forum Développement
    Réponses: 2
    Dernier message: 22/12/2005, 14h15
  5. Nommer un fichier de manière intéractive
    Par sducos81 dans le forum C++
    Réponses: 2
    Dernier message: 27/09/2005, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo