Tutorial del comando shred de Linux para principiantes (5 ejemplos)

Independientemente del sistema operativo que utilices, si no estás metido en el mundo de la informática forense o eres un profesional/entusiasta en general, probablemente te sorprenderá saber que cuando eliminas un archivo, el contenido del mismo no se borra realmente del disco duro de forma inmediata.

Sin embargo, hay herramientas que se encargan de que los datos sean irrecuperables. En Linux, hay una utilidad de línea de comandos -apodada shred- que está creada para este fin.

En este tutorial, hablaremos de shred utilizando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos de este artículo se han probado en una máquina Ubuntu 18.04 LTS y en Debian 10, pero deberían funcionar también en otras distribuciones de Linux como CentOS, Open SuSE, Fedora y Gentoo.

Comando shred de Linux

El comando shred sobrescribe un archivo para que el contenido original sea irrecuperable. A continuación se muestra la sintaxis del comando:

shred [OPTION]... FILE...

Y así es como lo explica la página man de la herramienta:

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.

A continuación se presentan algunos ejemplos al estilo de las preguntas y respuestas que deberían darte una buena idea de cómo funciona el comando shred.

Q1. ¿Cómo funciona el comando shred?

Si sólo quieres utilizarlo para sobrescribir un archivo, lo único que tienes que hacer es ejecutar ‘shred’ con un nombre de archivo como entrada.

shred [filename]

Por ejemplo, yo lo utilicé en archivo1.txt:

shred file1.txt

Y la siguiente captura de pantalla muestra claramente que el contenido del archivo fue sobrescrito por esta herramienta.

Utilizar la trituración en un archivo

Q2. ¿Cómo cambiar el número de veces que se sobrescribe el archivo?

Por defecto, shred sobrescribe un archivo 3 veces. Sin embargo, si quieres, puedes cambiar este número utilizando la opción de línea de comandos -n.

Por ejemplo, para que la herramienta sobrescriba el archivo «archivo1.txt» 10 veces, ejecuta el siguiente comando:

shred -n 10 file1.txt

Q3. ¿Cómo puedo asegurarme de que Shred elimina también el archivo?

Si quieres que Shred no sólo sobrescriba, sino que también elimine el archivo, utiliza la opción de línea de comandos -u.

Por ejemplo, he probado a ejecutar el comando shred de la siguiente manera

shred -u file1.txt

Y pude confirmar que el archivo se eliminó realmente.

Sobrescribir y eliminar el archivo con la trituración

Q4. ¿Cómo sobrescribir selectivamente con shred?

Supongamos que el requisito es sobrescribir sólo un número determinado de bytes del archivo. Esto puede hacerse utilizando la opción de línea de comandos -s, que requiere que pases el número de bytes como entrada.

Por ejemplo, mi archivo contenía el siguiente texto:

Howtoforge
FAQForge
Linux

Y quería que shred sobrescribiera sólo 10 bytes. Así que para ello, utilicé shred de la siguiente manera

shred -s10 file1.txt

Y así es como la operación afectó al contenido del archivo:

?uTw?????
FAQForge
Linux

Así puedes ver que sólo los primeros 10 bytes fueron sobrescritos con basura por el comando shred.

Q5. ¿Cómo indicar a shred la forma de borrar?

Ya hemos hablado de la opción de línea de comandos -u, que indica a shred que elimine el archivo además de sobrescribirlo. Pero hay otra opción -denominada «eliminar»- que te permite decirle a shred la forma en que quieres que elimine el archivo.

A continuación, la página de manual explica la opción «eliminar»:

--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.

Conclusión

Como estarás de acuerdo, el comando shred es una herramienta importante si tu trabajo implica tratar – especialmente eliminar – datos sensibles. Aquí, en este tutorial, hemos hablado de algunas opciones de la línea de comandos que ofrece shred. Cuando hayas terminado de practicarlas, dirígete a la página man de la herramienta para saber más.

También te podría gustar...