Tutoriel de la commande Linux shred pour les débutants (5 exemples)

Quel que soit le système d’exploitation que tu utilises, si tu n’es pas un expert en informatique ou un pro/enthousiaste en général, tu seras probablement surpris de savoir que lorsque tu supprimes un fichier, le contenu du fichier n’est en fait pas immédiatement supprimé du disque dur.

Cependant, il existe des outils qui permettent de s’assurer que les données deviennent irrécupérables. Sous Linux, il existe un utilitaire en ligne de commande – surnommé shred – qui a été conçu à cet effet.

Dans ce tutoriel, nous allons parler de shred en utilisant des exemples faciles à comprendre. Mais avant cela, il est bon de mentionner que tous les exemples de cet article ont été testés sur une machine Ubuntu 18.04 LTS et sur Debian 10, mais ils devraient également fonctionner sur d’autres distributions Linux comme CentOS, Open SuSE, Fedora et Gentoo.

Commande Linux shred

La commande shred écrase un fichier afin de rendre le contenu original irrécupérable. Voici la syntaxe de la commande :

shred [OPTION]... FILE...

Et voici comment la page de manuel de l’outil l’explique :

shred - overwrite a file to hide its contents, and optionally delete it

Overwrite the specified FILE(s) repeatedly, in order to make it harder for even very expensive
hardware probing to recover the data.

Voici quelques exemples sous forme de questions-réponses qui devraient te donner une bonne idée du fonctionnement de la commande shred.

Q1. Comment fonctionne la commande shred ?

Si tu veux simplement l’utiliser pour écraser un fichier, il te suffit d’exécuter ‘shred’ avec un nom de fichier en entrée.

shred [filename]

Par exemple, je l’ai utilisé sur file1.txt :

shred file1.txt

Et la capture d’écran suivante montre clairement que le contenu du fichier a été écrasé par cet outil.

Utilise shred sur un fichier

Q2. Comment modifier le nombre de fois que le fichier est écrasé ?

Par défaut, shred écrase un fichier 3 fois. Cependant, si tu veux, tu peux modifier ce nombre en utilisant l’option de ligne de commande -n.

Par exemple, pour que l’outil écrase le fichier ‘file1.txt’ 10 fois, exécute la commande suivante :

shred -n 10 file1.txt

Q3. Comment s’assurer que Shred supprime aussi le fichier ?

Si tu veux que shred ne se contente pas d’écraser, mais supprime aussi le fichier, utilise l’option de ligne de commande -u.

Par exemple, j’ai essayé d’exécuter la commande shred de la façon suivante :

shred -u file1.txt

Et j’ai pu confirmer que le fichier a bien été supprimé.

Écraser et supprimer le fichier avec shred

Q4. Comment écraser de manière sélective à l’aide de shred ?

Supposons que l’exigence soit d’écraser uniquement un nombre défini d’octets du fichier. Tu peux le faire en utilisant l’option de ligne de commande -s, qui te demande de passer le nombre d’octets en entrée.

Par exemple, mon fichier contenait le texte suivant :

Howtoforge
FAQForge
Linux

Et je voulais que shred n’écrase que 10 octets. Pour cela, j’ai donc utilisé shred de la façon suivante :

shred -s10 file1.txt

Et voici comment l’opération a affecté le contenu du fichier :

?uTw?????
FAQForge
Linux

Tu peux donc voir que seuls les 10 premiers octets ont été écrasés avec des déchets par la commande shred.

Q5. Comment indiquer à shred la façon de supprimer ?

Nous avons déjà parlé de l’option de ligne de commande -u qui indique à shred de supprimer le fichier en plus de l’écraser. Mais il existe une autre option, appelée « remove », qui te permet d’indiquer à shred la façon dont tu veux qu’il supprime le fichier.

Voici comment la page de manuel explique l’option ‘remove’ :

--remove[=HOW]
      like -u but give control on HOW to delete

 Delete  FILE(s)  if  --remove (-u) is specified.  The default is not to
       remove the files because it is common to operate on device  files  like
       /dev/hda,  and those files usually should not be removed.  The optional
       HOW parameter indicates how to remove a directory  entry:  'unlink'  =>
       use  a  standard  unlink call.  'wipe' => also first obfuscate bytes in
       the name.  'wipesync' => also sync each obfuscated byte to  disk.   The
       default mode is 'wipesync', but note it can be expensive.

Conclusion

Comme tu peux en convenir, la commande shred est un outil important si ton travail implique de traiter – et surtout de supprimer – des données sensibles. Dans ce tutoriel, nous avons abordé certaines options de ligne de commande que propose shred. Une fois que tu as fini de les mettre en pratique, rends-toi sur la page de manuel de l’outil pour en savoir plus.

Vous aimerez aussi...