Shred : Supprimer définitivement un fichier sous Ubuntu
I. Présentation
Lorsqu’on supprime un fichier sous Linux, et notamment Ubuntu, en utilisant la commande « rm » le fichier n’est pas totalement supprimé. Certes, suite à la suppression du fichier l’espace disque disponible a augmenté puisque qu’un fichier a été supprimé, mais, avec des logiciels appropriés il est possible de retrouver, de restaurer ces données.
Dans le cas où les données contenues dans le fichier sont confidentielles, cela peut devenir embêtant, voir inquiétant si une personne réussie à récupérer le fichier que vous pensiez avoir supprimé définitivement. Heureusement, un utilitaire nommé « Shred » permet de déchiqueter un fichier dans le but de le supprimer puis de réécrire à son emplacement des données aléatoires, appelées « déchets ». Le seul inconvénient de Shred c’est qu’il permet uniquement le déchiquetage de fichiers mais pas pour un répertoire ou une arborescence.
II. Utilisation
Sur votre machine Ubuntu, vous n’aurez pas besoin d’installer de paquets supplémentaires puisque Shred est compris dans la distribution via le paquet coreutils.
Passons à la pratique. Prenons pour exemple un fichier nommé « ma_facture_1.txt », qui est une facture qui n’a plus d’utilité et donc que je souhaite supprimer. Ce fichier contient le contenu « Résumé de ma facture n°1 ».
Ce qui nous donnera ceci :
Maintenant, exécutez la commande suivante :
shred ma_facture_1.txt
Puis essayez d’ouvrir à nouveau le fichier afin de voir s’il existe, et éventuellement de voir son contenu si c’est le cas. Vous verrez qu’il existe encore mais que le contenu quant à lui est complétement déchiqueté.
Vous n’êtes plus en mesure de me dire ce qui était écrit dans le fichier, et, moi non plus d’ailleurs. Toutefois, malgré que le contenu de notre fichier soit bien déchiqueté, le fichier en lui-même existe toujours. Nous allons voir comment utiliser Shred pour déchiqueter le contenu, tronquer et supprimer le fichier. Gardons le fichier « ma_facture_1.txt » pour l’exemple.
Dans un premier temps, nous allons tronquer et supprimer le fichier, grâce à l’option « -u » de Shred, comme ceci :
shred –u ma_facture_1.txt
Ensuite, créez un fichier nommé « ma_facture_2.txt » puisque le premier fichier est désormais définitivement supprimé. Nous allons utiliser l’option « -u » également sur ce fichier, tout en la couplant aux options « -n » et « -z » qui permettent respectivement de remplacer n fois le contenu du fichier par des déchets et de remplacer ces données par des zéros dans le but de masquer le déchiquetage c’est-à-dire les déchets. Pour valeur de l’option « -n », prenons 10 pour que le contenu soit remplacé 10 fois.
shred –n 10 –z –u ma_facture_2.txt
Vous pouvez désormais supprimer vos fichiers avec Shred plutôt que d’utiliser la commande « rm », surtout lorsqu’il s’agit de données sensibles.
III. Limite
Lorsqu’on s’intéresse de plus près à la documentation (obtenue avec la commande « man shred »), on voit que c’est indiqué que Shred peut s’avérer inefficace dans certains cas, même si ça dépend également de votre configuration système.
- Lors de l’utilisation de systèmes de fichier journalisés tels qu’ext3, JFS, XFS, etc… Pour ext3 cela dépend du mode de journalisation actif.
- Système RAID avec notamment la redondance des données,
- Les fichiers compressés,
- Les fichiers où l’on aurait une gestion des versions précédentes (sauvegarde),
- Les fichiers situés sur des stockages réseaux, de type NFS par exemple.