En Linux, para eliminar un archivo, puedes usar los comandos rm o unlink
. Sin embargo, estos comandos solo eliminan las referencias al archivo, dejando los datos recuperables en el disco.
El comando shred
en Linux se usa para eliminar un archivo definitivamente, reemplazándolo varias veces con datos aleatorios antes de eliminarlo. Esto dificulta mucho la recuperación de datos con herramientas de recuperación de archivos.
Una vez que un archivo ha sido eliminado con shred
, las herramientas clásicas de recuperación de datos como TestDisk, Photorec, Scalpel, o Recuva (en discos duros HDD) tendrán muy pocas posibilidades de recuperar los datos.
En este tutorial, aprenderás a usar el comando shred
en Linux.
Sintaxis y qué debes saber sobre el comando shred
shred
es una herramienta útil para eliminar archivos definitivamente en Linux, especialmente para discos clásicos. Sin embargo, debido a las limitaciones en algunos sistemas de archivos y SSD, deberías verificar si alternativas más específicas como wipe
, o la activación del TRIM en los SSD son necesarias para garantizar una eliminación definitiva.
La utilidad funciona bien con sistemas de archivos clásicos como ext3 y ext4. Sin embargo, en algunos sistemas de archivos como Btrfs, XFS, o ReiserFS, o en los SSD, el comportamiento puede ser ineficaz debido a los mecanismos de escritura (como el registro o el TRIM de los SSD). En estos sistemas, el borrado físico de los datos es menos predecible.
La sintaxis es clásica:
shred <opciones> <archivo>

Aquí hay una tabla resumen de las principales opciones del comando shred
en Linux, usadas para eliminar de forma segura archivos al sobreescribirlos con datos aleatorios.
Opción | Descripción | Ejemplo |
---|---|---|
-u | Elimina el archivo después de haberlo sobreescrito con datos aleatorios. | shred -u archivo.txt |
-n X | Define el número de pasadas de sobreescritura del archivo con datos aleatorios. Por defecto, 3 pasadas. | shred -n 5 archivo.txt (5 pasadas de sobreescritura) |
-z | Añade una última pasada escribiendo ceros para enmascarar los datos sobreescritos. | shred -z archivo.txt |
-v | Modo verboso, muestra los detalles del proceso de sobreescritura. | shred -v archivo.txt |
-f | Fuerza la sobreescritura del archivo incluso si está protegido en escritura (modifica los permisos si es necesario). | shred -f archivo.txt |
--remove | Elimina el archivo después de la sobreescritura, equivalente a la opción -u . | shred --remove archivo.txt |
--iterations=X | Especifica el número de pasadas (como -n X ). | shred --iterations=5 archivo.txt |
--size=X | Sobreescribe solo los primeros X bytes del archivo (por defecto, se sobreescribe el archivo entero). | shred --size=1M archivo.txt (sobreescribe 1 megabyte) |
--help | Muestra la ayuda sobre las opciones disponibles del comando shred . | shred --help |
Usar shred
en Linux para eliminar archivos sin posibilidad de recuperación
Eliminar definitivamente un archivo
Por defecto, shred
sobreescribe el archivo varias veces para asegurarse de que los datos son irrecuperables, y ofrece opciones para personalizar este comportamiento.
shred -u archivo.txt
Aquí están las explicaciones:
-u
: Elimina el archivo después de haberlo sobreescrito, lo que combina la eliminación de los datos con la eliminación del archivo (opcional).archivo.txt
: El archivo a eliminar definitivamente.
Cuando no especificas la opción -u
, el archivo no se elimina después de la sobreescritura.
Aquí hay un ejemplo, sobreescribiendo el archivo save.tar.gz
:
shred save.tar.gz
Lectura recomendada: Cómo Comprimir y Descomprimir tar.gz en Linux
Verás que shred
no elimina el archivo, sino que sobreescribe su contenido.
El archivo pasa de ser un archivo comprimido gzip a datos brutos.
Tendrás que eliminarlo con rm
o unlink
.
Vaciar y borrar un disco duro en Linux
Como los discos son archivos, también puedes vaciar totalmente un disco dificultando la recuperación de datos con esta herramienta.
La sintaxis es la misma.
Por ejemplo, para vaciar el disco /dev/sdb
:
sudo shred /dev/sdb
La eliminación tarda tiempo, porque la utilidad escribirá varias veces en los sectores del disco para hacer imposible la recuperación de datos.
Aumentar el número de sobreescrituras
La opción -n
indica cuántas veces shred
debe sobreescribir el archivo.
Por defecto, shred
sobreescribe el archivo 3 veces. Puedes aumentar o reducir este número.
shred -n 10 save.tar.gz
Eliminar definitivamente un archivo con 5 pasadas de sobreescritura y rellenando con ceros al final:
shred -u -n 5 -z archivo.txt
Sobreescribir solo una parte del archivo
Finalmente, un último ejemplo para sobreescribir solo los 2 primeros megabytes de un archivo:
shred --size=2M archivo.txt
Limitaciones
Al consultar la documentación (obtenida con el comando “man shred
“), se indica que Shred puede ser ineficaz en algunos casos, aunque también depende de tu configuración del sistema.
- Sistemas de archivos con registro, como ext3, JFS, XFS, etc. Para ext3, depende del modo de registro activo.
- Sistemas RAID, especialmente con redundancia de datos.
- Archivos comprimidos.
- Archivos con gestión de versiones anteriores (respaldos).
- Archivos ubicados en almacenamiento en red, como NFS.
Preguntas frecuentes (FAQ)
¿Por qué la recuperación después de shred es generalmente imposible?
shred
reemplaza el contenido del archivo con datos aleatorios en varias pasadas (por defecto 3, pero este número es configurable). Cada sobreescritura reduce considerablemente la posibilidad de recuperación de datos, incluso con herramientas avanzadas de recuperación de archivos.
¿En qué casos la recuperación podría ser posible o limitada?
En los SSD, el mecanismo TRIM reorganiza los bloques de datos después de la eliminación, lo que hace que shred
sea ineficaz. Los SSD gestionan de forma diferente la escritura de datos para prolongar la vida útil del disco. En un SSD, incluso después de sobreescribir los datos con shred
, es posible que los datos se almacenen en bloques inaccesibles, pero aún recuperables con técnicas especializadas. Para los SSD, se recomienda el uso de fstrim
(para discos compatibles con TRIM) o herramientas específicas del fabricante del SSD para una eliminación definitiva.
Los sistemas de archivos modernos (ej. Btrfs, XFS, ZFS) usan mecanismos como el registro o la gestión de copias de archivos (Copy-On-Write). En estos casos, shred
podría no sobreescribir los datos originales, sino solo sus copias recientes. Por lo tanto, es posible que los datos originales aún sean recuperables, aunque esto requiera herramientas especializadas.
Pingback: Borrar un Disco Duro en Linux: Forma Segura » Blog Linux