Supprimer définitivement des fichiers depuis Linux

Mis à jour le mardi 15 novembre 2022 par johackim

Lorsqu'un fichier est supprimé, son contenu peut rester dans le système de fichiers, à moins qu'il ne soit explicitement écrasé par un autre contenu.

Pour supprimer des données définitivement, il existe plusieurs outils :

  • secure-delete
  • shred
  • dd

Secure-delete

Pour installer secure-delete :

apt install -y secure-delete # Debian/Ubuntu
yay -S --noconfirm secure-delete # Arch Linux

Le package secure-delete contient plusieurs outils :

  • srm - Supprimer un fichier
  • smem - Supprimer les traces d'un fichier dans la RAM
  • sfill - Supprimer tout l'espace libre d'un disque dur
  • sswap - Supprimer toutes les données du SWAP

Si vous souhaitez uniquement supprimer les données d'un dossier :

srm -r <folder>

Si vous souhaitez supprimer l'espace libre d'un disque ou d'une partition :

sfill -f -v <mountpoint>

La commande dd

Il s'agit d'une commande native à Linux.

Pour supprimer l'espace disque d'un disque, vous pouvez le remplir de zéros avec la commande suivante :

dd if=/dev/zero of=zero; sync; rm zero; sync
dd if=/dev/random of=random; sync; rm random; sync

Shred

La commande que je préfère, c'est la suivante :

shred -v --random-source=/dev/urandom -n1 --zero <partition|device>
shred -v --random-source=/dev/urandom -n1 --zero -u <file>

Elle remplacera le fichier par des données aléatoire puis par des zéros.


Références :