Hemos hablado algunas veces sobre los directorios del árbol de GNU/Linux y cual es su función, para qué sirve cada uno y qué tipo de archivos contiene. Pero hay uno que nos llama poderosamente la atención, es el directorio /tmp.

El directorio /tmp en los sistemas GNU/Linux contiene los archivos necesarios que son requeridos temporalmente por el sistema, así como otros programas y aplicaciones que se ejecutan en la máquina. Cuando, por ejemplo, te descargas las fuentes de una aplicación, compilas e instalas, se creará una carpeta en /tmp donde se han desarrollado las funciones. O también, cuando se está escribiendo un documento, todo el contenido de ese documento se guarda como un archivo temporal dentro del directorio /tmp.

Tanto /tmp como /var/tmp son utilizados por los programas y por el propio sistema para almacenar datos temporalmente. Sin embargo, la diferencia clave es el tiempo que los datos se almacenan dentro de estos sistemas de archivos. El período de retención de datos para /var/tmp es mucho más largo que el del directorio /tmp.

Por defecto, todos los archivos y datos que se almacenan en /var/tmp se mantienen hasta 30 días. Mientras que en /tmp, los datos se borran automáticamente después de diez días.

Además, cualquier archivo temporal que se almacene en el directorio /tmp se elimina inmediatamente al reiniciar el sistema. Por lo tanto, el directorio /var/tmp es usado por programas para almacenar datos que necesitan ser preservados entre los reinicios temporalmente.

Los archivos y datos que se almacenan en el directorio /tmp tienen un tamaño de sólo unos pocos KB. Es raro, aunque posible, que el directorio /tmp se llene.

Para un sistema promedio, es necesario que haya millones de archivos temporales almacenados en el directorio /tmp para llenarlo. Esto no debería ser algo de lo que debas preocuparte si ejecutas un sistema que se apaga con frecuencia, ya que el sistema de reinicio elimina todos los archivos almacenados en el directorio /tmp.

Sin embargo, si eres un administrador de sistemas que ejecuta un servidor que raramente se reinicia y alberga miles de usuarios, entonces el llenado del directorio /tmp es un problema práctico.

Con más archivos temporales apilados en el directorio, se va a consumir lentamente todo el espacio de almacenamiento, lo que es una terrible noticia para la salud general del sistema. Algunos usuarios, muy listos ellos, han borrado el directorio /tmp por estar lleno. Terrible error, aunque no único porque conozco a gnuxeros de larga data que han borrado el directorio /home en un descuido. Para el caso de /tmp no es un error fatal. Podemos recrearlo con la siguiente orden de terminal:

sudo mkdir /tmp

Ahora le otorgamos permisos especiales:

sudo chmod 1777 /tmp

La primera línea crea un nuevo directorio /tmp. La segunda línea da a todos los usuarios (propietario, grupo y otros) acceso y permiso para leer, escribir y ejecutar archivos en el directorio /tmp.

A continuación, puedes introducir esta orden para comprobar todos los permisos del directorio /tmp y asegurarse de que todos los usuarios puedan utilizarlo:

ls -ld /tmp

Así habrás recuperado el directorio /tmp.