Linux / Comando shred: sobrescribir archivos y conocer sus límites de borrado

shred sobrescribe los datos accesibles mediante un archivo o dispositivo para dificultar su recuperación. El éxito del comando no demuestra que se borraron todas las copias físicas: las unidades de estado sólido (SSD), las instantáneas y los sistemas que escriben copias nuevas pueden conservar datos anteriores.

En este artículo se explican no solo el uso básico y las opciones, sino también las condiciones en las que shred puede ser efectivo, los entornos de almacenamiento donde su eficacia es limitada y métodos de eliminación más adecuados.

¿Qué es el comando shred?

Por defecto, shred sobrescribe sin retirar el nombre del archivo. -u solicita además su retirada, pero no certifica un borrado físico completo. Su eficacia depende de que las escrituras alcancen las ubicaciones que contenían los datos anteriores. La lista de comandos de uso frecuente en Linux permite comparar esta operación con la eliminación ordinaria.

Sintaxis básica

shred [OPCIONES] ARCHIVO ...

Si el nombre de archivo o ruta contiene espacios, se debe poner entre comillas, y los nombres que comienzan con un guion se deben especificar después de -- si es posible. Las opciones soportadas pueden variar según la distribución y la versión de GNU Coreutils, por lo que consulte la descripción del sistema actual con shred --help y man shred.

Uso básico de shred

Sobrescribir archivos

La ejecución básica sobrescribe el contenido del archivo varias veces, pero conserva la entrada del archivo. Primero, pruébelo en un archivo de prueba.

shred secret.txt

Eliminar archivo después de sobrescribirlo

-u elimina el archivo después de sobrescribirlo. Esto no significa que el resultado de la eliminación haya desaparecido de todos los niveles de almacenamiento.

shred -u secret.txt

Verificar el progreso

Al manejar archivos grandes o dispositivos, puede ver la información de progreso con -v.

shred -v -n 3 disk-image.raw

Diferenciar entre mensaje de finalización y garantía de eliminación real

shred muestra el progreso según la opción, pero no puede garantizar que todas las copias en los medios de almacenamiento físico se hayan borrado sin errores. A continuación, se aplica solo a archivos de prueba creados por usted.

printf 'demo\n' > disposable-demo.txt
shred -u disposable-demo.txt
test ! -e disposable-demo.txt
echo $?

La salida de ejemplo de 0 solo confirma que el nombre del archivo ha desaparecido. Los datos que permanecen en SSD, instantáneas, sistemas de archivos con journaling o copias de seguridad deben considerarse por separado.

Opciones principales

Opciones Descripción
-n N, --iterations=N Especifique la cantidad de veces que se sobrescriben los datos aleatorios.
-u, --remove El archivo se elimina después de sobrescribirlo.
-z, --zero Añade una pasada final de bytes nulos; no garantiza el borrado de otras copias.
-v, --verbose Muestra el progreso.
-s SIZE Sobrescribe solo el número de bytes especificado.
-x, --exact No amplía el archivo hasta el límite del bloque completo.
-f, --force Intenta cambiar los permisos si es necesario para sobrescribir.
--random-source=FILE Especifica la fuente de bytes aleatorios.

Las opciones largas facilitan entender su significado y también ayudan a revisar scripts. Sin embargo, en scripts donde la portabilidad es importante, primero verifique si el sistema objetivo soporta esas opciones de extensión GNU.

Ejemplos de uso práctico

Sobrescribir archivos normales con un número limitado de pasadas

Si aumenta el número de sobrescrituras, el tiempo también aumenta. En los entornos de almacenamiento modernos, es más importante comprender las características de la capa de almacenamiento y si está cifrada que aumentar el número de sobrescrituras.

shred -v -n 1 -z -u confidential.bin

Identificación antes de procesar dispositivos de bloque

Si se especifica incorrectamente la ruta del dispositivo, se podría destruir todo otro disco. Debe desmontarse y verificarse la relación con lsblk, tamaño y modelo de varias maneras.

lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINTS
findmnt

Revisión de eliminación basada en cifrado

Si los datos se cifraron desde el principio, retirar de forma fiable todas las claves capaces de descifrarlos puede formar parte de un procedimiento de eliminación. Deben considerarse también sus copias y las políticas del dispositivo. cryptsetup status encrypted-volume solo consulta el estado de un mapeo: sustituya encrypted-volume por uno existente; esa consulta no destruye claves ni borra datos.

cryptsetup status encrypted-volume

Comparación de shred y comandos relacionados

Comando / método Rol principal Situaciones adecuadas
rm Eliminación de nombres de archivo y liberación de espacio Eliminación normal cuando el propósito no es borrar rastros confidenciales
shred Intento de escritura repetida en la misma ubicación Sobrescritura limitada de medios de almacenamiento que cumplen con las condiciones
Eliminación segura del dispositivo Eliminación a nivel de firmware del dispositivo y destrucción de claves Retirada de dispositivos compatibles mediante un procedimiento verificado
Destrucción física Tratar el medio de manera que sea irrecuperable Eliminación que requiere un alto nivel de garantía según la regulación

Precauciones al usar

No se puede garantizar que en un SSD se sobrescriba la misma celda

Debido a la nivelación de desgaste y los bloques de reserva, incluso si se vuelve a escribir en la dirección lógica, la celda física donde estaban los datos originalmente puede no sobrescribirse de inmediato.

Pueden quedar copias en otras capas

Los diarios que registran contenido, las instantáneas, la copia al escribir (copy-on-write), la sincronización y los arreglos de discos pueden conservar datos en otras ubicaciones. No todos los modos de diario almacenan el contenido del archivo: en ext3/ext4, GNU destaca la limitación de data=journal. Sobrescribir un archivo no retira copias externas ni instantáneas.

Una ruta de dispositivo incorrecta puede destruir otros datos

Si se ejecuta en un dispositivo de bloque, se puede perder todo el sistema de archivos. Verifique el estado de montaje y el ID del dispositivo, y valide independientemente que no haya datos que desee recuperar.

FAQ

¿Si uso shred -u, es imposible recuperar el archivo por completo?

No se puede garantizar. Dependiendo del dispositivo de almacenamiento, sistema de archivos, estructura de instantáneas y copias de seguridad, pueden quedar otras copias o bloques físicos anteriores.

¿Se puede usar shred también en archivos de SSD?

Debido al nivelación del desgaste de los SSD, es difícil confiar en la efectividad de sobrescribir archivos individuales. Revise el cifrado completo del disco y los procedimientos de eliminación segura basados en el fabricante y los estándares.

¿Aumenta la seguridad la opción -z?

Es una opción que sobrescribe por última vez con ceros para que la sobrescritura sea menos evidente, y no elimina las copias en otros niveles ni garantiza la eliminación completa.

¿Cuál es mejor para la eliminación de archivos ordinarios, rm o shred?

La eliminación ordinaria que no trata por separado el riesgo de residuo de datos confidenciales es adecuada con rm. Use shred solo cuando comprenda el entorno de almacenamiento y el modelo de amenazas.

Documentación oficial