Skip to content
System

File sous Linux : reconnaître un fichier sans croire son extension

Avatar illustré de Julien Macé 3 min read
Mascotte Linux examinant différents types de fichiers avec une loupe
Mascotte Linux examinant différents types de fichiers avec une loupe
n
Mascotte Linux examinant différents types de fichiers avec une loupe
Identifier un fichier Linux avec sa signature plutôt qu’avec son extension.
nn

Un fichier Linux peut porter une mauvaise extension, provenir d’un téléchargement interrompu ou être simplement un binaire sans indication claire. Avant de l’ouvrir ou de l’exécuter, je vous conseille de vérifier ce qu’il contient réellement avec file. La commande s’appuie sur la signature du fichier, pas uniquement sur son nom.

La commande file commence par la signature du fichier

Placez-vous dans le dossier concerné, puis passez le chemin du fichier à file :

file sauvegarde
file image.jpg
file script.sh

Le résultat indique généralement une famille de contenu : texte ASCII ou UTF-8, archive, image, exécutable ELF, document PDF ou données binaires. Si un fichier appelé photo.jpg est en réalité une page HTML, file vous le signalera. C’est un contrôle simple qui évite de lancer un contenu inattendu.

Pour analyser plusieurs fichiers, utilisez un motif shell :

file *.tar.gz
file --brief --mime-type *

L’option --brief retire le nom du fichier de la sortie. L’option --mime-type renvoie uniquement le type MIME, par exemple text/plain, application/zip ou application/octet-stream. Cette forme est pratique dans un script ou pour comparer rapidement une série de téléchargements.

Lire les magic bytes sans exécuter le fichier

file lit les premiers octets et les compare à une base de signatures. Ces magic bytes permettent souvent de reconnaître un format même si l’extension est absente ou mensongère. Une archive ZIP commence par exemple par une signature caractéristique, tandis qu’un exécutable Linux ELF possède sa propre identification.

Vous pouvez demander davantage de détails :

file -k sauvegarde
file -z archive.tar.gz
file --mime sauvegarde

-k demande à file de poursuivre les tests et peut faire apparaître plusieurs interprétations. Avec -z, la commande tente aussi d’identifier le contenu décompressé d’un fichier compressé. --mime affiche le type MIME et un éventuel jeu de caractères.

Cette vérification ne remplace pas une analyse de sécurité. Un fichier identifié comme script ou exécutable peut toujours être malveillant. Ne lancez pas un contenu inconnu avec sudo simplement parce que son type semble cohérent.

Comparer le type détecté avec ce que vous attendiez

Après un téléchargement, vérifiez d’abord le type puis la taille :

file paquet.deb
stat paquet.deb
sha256sum paquet.deb

Si vous attendiez un paquet Debian et obtenez HTML document, le serveur a probablement renvoyé une page d’erreur ou une redirection enregistrée au mauvais endroit. Le même piège existe avec les archives : un fichier nommé archive.tar.gz peut être un téléchargement incomplet ou une page web. Dans ce cas, utilisez aussi wget sous Linux pour reprendre proprement le téléchargement, puis contrôlez l’empreinte publiée par le fournisseur.

Pour inspecter le contenu d’une archive sans l’extraire dans votre dossier de travail, utilisez l’outil adapté. L’article sur tar sous Linux détaille cette étape. Avec un fichier compressé ou un paquet, ne mélangez pas l’identification du format et l’exécution de ce qu’il contient.

Les limites de file à garder en tête

La commande se trompe rarement sur les formats courants, mais elle ne valide ni l’intégrité ni l’authenticité d’un fichier. Un script modifié reste un script, et un paquet corrompu peut parfois conserver une signature reconnaissable. Pour un fichier sensible, complétez le contrôle avec une somme SHA-256, une signature GPG ou la procédure publiée par le projet.

L’ordre reste le même : identifier, vérifier la provenance, inspecter, puis seulement ouvrir ou exécuter. Sur un serveur, cette commande mérite une place dans les contrôles de téléchargement et les scripts de diagnostic, précisément parce qu’elle ne se fie pas à l’extension.

Share Facebook X WhatsApp LinkedIn Pinterest Reddit Email