mount

  • Cómo re-montar (remount) un sistema de archivos quitando la opción "noexec"

    Por razones de seguridad, es recomendable denegar el permiso de ejecución en el directorio de archivos temporales /tmp. Esto se debe a que se trata de un directorio donde todo el mundo tiene permisos de lectura y escritura, por lo tanto puede ser usado para crear y ejecutar código malicioso o explotar vulnerabilidades.

    En general, el directorio de archivos temporales suele ser implementado como un sistema de archivos en una partición separada. Esto se hace para evitar ataques de denegación de servicio (DoS en la jerga de seguridad informática), es decir, un atacante podría escribir archivos de tamaño arbitrario dentro del directorio temporal (no es necesario que tenga usuario en el sistema, sino que lo puede hacer abusando de algún servicio) hasta ocupar todo el espacio disponible en el disco y hacer colapsar el sistema operativo (si /tmp no estuviese alojado en una partición separada).

    Por lo tanto, al estar alojado en una partición separada, se implementa la denegación de permiso ejecución directamente sobre todo el filesystem utilizando la opción de montaje "noexec". Esta opción impide la ejecución directa de binarios en el sistema de archivos, ni siquiera root puede ejecutar binarios en un filesystem montado con la opción "noexec". De esta forma se protege el directorio de archivos temporales de posibles abusos y exploits, y es una de las configuraciones básicas que se aplican en todo proceso de hardening de un servidor GNU/Linux.

  • Cómo saber si un directorio es un punto de montaje

    En todo sistema operativo, los archivos se organizan en sistemas de archivos. Un sistema de archivos es una estructura de datos de bajo nivel que organiza y mantiene los bloques de datos que implementan a los archivos contenidos dentro de un dispositivo, al igual que el espacio disponible y árbol de directorios. Todos los archivos accesibles desde un sistema Unix conforman una jerarquía y están organizados en un único gran árbol cuya raíz es el directorio /. Estos archivos pueden estar distribuidos a lo largo de diferentes sistemas de archivos en diferentes dispositivos (discos, particiones, etc.).

    El comando mount permite anexar el sistema de archivos encontrado en un dispositivo al árbol de archivos principal a partir de cierta ruta o ubicación, proceso conocido como montar. En su forma estándar, el comando mount toma los siguientes parámetros:

    # mount -t TIPO DISPOSITIVO DIRECTORIO
    

    El parámetro TIPO indica el tipo de sistema de archivos alojado en el DISPOSITIVO. El último parámetro determina el directorio donde se "monta" el sistema de archivos, conocido como "punto de montaje". De forma tal que el directorio no se comporta como un directorio tradicional (conjunto de archivos y subdirectorios) sino que apunta a un sistema de archivos externo. De esto se trata el "montaje" de sistemas de archivos y así es como todos los archivos accesibles por el sistema operativo quedan organizados en un único gran árbol.

    El sistema de archivos montado puede utilizar cualquier formato soportado por el sistema operativo o puede ser provisto a través la red (como por ejemplo Samba o NFS) u otros servicios. Típicamente mount es capaz de autodetectar el formato de sistema de archivos empleado por un dispositivo, con lo que el parámetro -t resulta opcional.

  • Montar una SD con un lector de tarjetas en Linux

    Montar una tarjeta de memoria SD utilizando un lector de tarjetas en sistemas GNU/Linux es exactamente igual a montar cualquier otro dispositivo de almacenamiento USB (pendrive).