Calculer l’empreinte MD5 d’un dossier sous Linux
Sommaire
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 :
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 :
Génial j’allai faire une iso de 30 gigas de photos…
Merci beaucoup pour ce tutoriel.
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+
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 😉
Merci pour cette commande, par contre pense à la modifier comme dit dans les commentaires plus haut (/tmp.md5 à la place d’un /tmp/md5) !
on calcuLE pour le troisieme titre
merci beaucoup pour ce tuto 🙂