No ejecutar programas desde /tmp

Riesgo alto No marcado por defecto Catálogo revisado: 2026-11-05

El malware y los exploits suelen dejar un programa en /tmp y ejecutarlo. Esto impide que se ejecute nada allí.

Por qué importa

Tras entrar, los malwares y los scripts de explotación suelen descargar un programa en /tmp, porque cualquiera puede escribir ahí, y ejecutarlo. Montar /tmp de forma que nada en él pueda ejecutarse rompe ese paso y obliga al atacante a buscar otro sitio.

Cómo funciona

Pone la opción de montaje noexec en /tmp, así el kernel se niega a ejecutar programas guardados ahí y a mapear archivos de ahí como código ejecutable. No impide que un intérprete lea un script, así que bash /tmp/script.sh sigue funcionando.

Quién debería usarlo

Sirve para servidores y escritorios ordenados, donde el software se instala desde el gestor de paquetes. Desarrolladores y quien compila software o ejecuta instaladores deben pensárselo, porque mucho instrumental espera ejecutar cosas de /tmp.

Qué puedes notar

Los programas fallan con Permission denied o failed to map segment from shared object. Instaladores, herramientas de compilación, scripts de paquetes y algunos módulos de Java o Python que descomprimen código en /tmp son las víctimas habituales.

Compruébalo en tu equipo

Mira las opciones del montaje:

findmnt -no OPTIONS /tmp

Aplícalo a mano

Añade la opción al montaje en /etc/fstab, o en una unidad de montaje de systemd, y vuelve a montar:

# /etc/fstab, add "noexec" to the options of /tmp, for example:
tmpfs  /tmp  tmpfs  defaults,noexec  0 0
sudo mount -o remount /tmp

Deshazlo

Quita la opción de nuevo y vuelve a montar.

Ajustes relacionados

Fuentes

Linux Hardening Guide (madaidans)
17