miércoles, 11 de enero de 2017

Uso de archivos temporales en Linux

terminal
Una herramienta muy interesante a la hora de hacer nuestros scripts son los archivos temporales. Aunque podamos crearlos nosotros de forma “manual”, en este post veremos cómo hacerlo de forma más segura, utilizando la función mktemp. Creo que la forma más fácil de verlo es con un ejemplo:

#!/bin/bash
tmpfile1=$(mktemp /tmp/pruebaTemporal.XXXXXX)   # Crear el archivo temporal
sed -i 's/Pepe/Jose/g' $1 > "$tmpfile1" # Ejecutar la orden y guardar en archivo temporal
cat $tmpfile1 > $1  # Guardar el archivo temporal en el archivo de entrada
rm $tmpfile1 # Eliminar el archivo temporal

Siguiendo los comentarios del script podéis entender lo que se hace en cada línea. Con archivo de entrada me refiero al archivo que pasamos como parámetro de entrada del script. En la primera línea utilizamos el comando mktemp, que nos permite crear un archivo temporal cuyo nombre será único y cumplirá con la plantilla dada, pruebaTemporal.XXXXXX . Es decir, se sustituirán las ‘X’ por números y letras. Además, el archivo tendrá permisos de lectura y escritura asignados únicamente a su propietario (a no ser que usemos el flag -u). Este mecanismo permite el uso de archivos temporales en scripts de forma segura y evita posibles ataques, por ejemplo de denegación de servicio, ya que el nombre del archivo no será tan previsible para los posibles atacantes. Si queréis tener más información sobre ésto, recomiendo la lectura del enlace indicado en “Fuentes”.

Fuentes:

https://www.mktemp.org/manual.html




Sea el primero en comentar

Publicar un comentario

Felinfo: Java, Linux, Virtualización. Open Source.  ©Template Blogger Green by Dicas Blogger .

TOPO