Calculer l’empreinte MD5 d’un dossier sous Linux

I. Présentation

Dans un précédent tutoriel, nous avions vu comment calculer l'empreinte MD5 d'un simple fichier sous Linux. Seulement quand nous voulons calculer l'empreinte d'un dossier entier, nous obtenons un message d'erreur nous indiquant que la cible est un dossier et que md5 ne peut donc pas calculer son empreinte :

Md5Dir01

Il est néanmoins possible de calculer la somme md5 d'un dossier, ou plus précisément de tous les fichiers d'un même dossier. On va pour cela calculer la somme MD5 de tous les fichiers de ce dossier puis calculer la somme MD5 de ces sommes MD5. Le but ici est de déterminer si un des fichiers positionnés dans le dossier cible a subit une modification. On utilisera pour cela la commande suivante (par exemple pour le dossier "/etc") :

find /etc/ -type f -exec md5sum {} \; > /tmp.md5 && md5sum /tmp/md5 && rm /tmp/md5

Nous allons détailler un peu plus cette commande qui se découpe en trois parties séparées par les caractères d'enchainement "&&":

II. Calcul de la somme MD5 de tous les fichiers du dossier

On utilise pour cela la commande FIND qui nous permet de lister tous les fichiers ("type -f") du dossier cible ("/etc") et d'exécuter sur tous ces fichiers une commande ("-exec md5sum {} \;"). On inscrit chaque sortie (qui sera la somme MD5 de chaque fichier) dans le fichier "/tmp/md5".

III. On calcule la somme md5 de ce fichier

On utilise à nouveau la commande "md5sum" pour calculer la somme MD5 de toutes les sommes MD5 des fichiers du dossier cible

IV. On supprime le fichier temporaire (optionnel)

Pour faire plus propre, on supprime le fichier temporaire utilisé

Nous aurons donc la somme MD5 du dossier cible :

Md5Dir02

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 521.Voir tous les posts

5 thoughts on “Calculer l’empreinte MD5 d’un dossier sous Linux

  • Génial j’allai faire une iso de 30 gigas de photos…
    Merci beaucoup pour ce tutoriel.

    Répondre
  • Hello Mickael.

    J’ai utilisé ta commande pour vérifier le transfert d’un dossier volumineux entre deux machines.

    1/ il y a une petite typo dans ton script : un /tmp.md5 à la place d’un /tmp/md5

    2/ ça peut planter s’il y a des liens symboliques. Pour mon cas, cette commande fonctionne mieux :
    find . -type f -exec md5sum {} \; > /tmp/md5 && cat /tmp/md5 |cut -d’ ‘ -f1 |sort |uniq |md5sum – && rm /tmp/md5

    A+

    Répondre
  • Je viens de tester , d’après un forum, l’application hashdeep (dispo sur debian ) . En faisant hashdeep -r /nom du dossier on obtient la liste de chaque fichier et son empreinte. Je crois que c’est une empreinte md5.

    Au passage je signale que c’est un billet Linux et qu’il est référencé dans la catégorie Windows Server 😉

    Répondre
  • Merci pour cette commande, par contre pense à la modifier comme dit dans les commentaires plus haut (/tmp.md5 à la place d’un /tmp/md5) !

    Répondre
  • on calcuLE pour le troisieme titre
    merci beaucoup pour ce tuto 🙂

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.