Limitación de recursos: ulimit, /etc/security/limits.conf

...

Introducción

Linux permite limitar los recursos que pueden consumir los usuarios y sus procesos: número de archivos abiertos, tamaño de procesos, número de procesos, etc. Esto evita que un usuario o proceso monopolice los recursos del sistema.

Dos mecanismos principales:

  • ulimit → límites para la sesión actual del shell
  • /etc/security/limits.conf → límites persistentes por usuario o grupo

ulimit

Muestra o modifica los límites de recursos para la sesión actual del shell.

Ver todos los límites actuales:


$ ulimit -a
      

Ejemplo — limitar número de archivos abiertos:


$ ulimit -n 1024
      

Ejemplo — limitar el tamaño máximo de un fichero creado:


$ ulimit -f 512
      

El valor está en bloques de 512 bytes.

Opciones comunes:

  • -a → muestra todos los límites
  • -n → número máximo de ficheros abiertos
  • -u → número máximo de procesos del usuario
  • -f → tamaño máximo de fichero que puede crear el shell
  • -v → memoria virtual máxima
  • -S → límite blando (soft): puede superarse hasta el límite duro
  • -H → límite duro (hard): techo máximo que no puede superarse

Los cambios con ulimit solo afectan a la sesión actual y no son persistentes.

/etc/security/limits.conf

Archivo de configuración para establecer límites persistentes de recursos por usuario o grupo. Los cambios aquí se aplican en el siguiente inicio de sesión.

Formato de cada línea:


dominio   tipo   elemento   valor
      
  • dominio → usuario, @grupo o * (todos)
  • tipo → soft (blando) o hard (duro)
  • elemento → el recurso a limitar (nofile, nproc, fsize...)
  • valor → límite numérico

Ejemplo:


juan     soft    nofile    1024
juan     hard    nofile    4096
@devs    soft    nproc     100
*        hard    core      0
      
  • juan puede abrir hasta 1024 ficheros (blando) y 4096 como máximo (duro)
  • el grupo devs puede tener hasta 100 procesos
  • nadie puede generar ficheros core

Limitación de recursos del sistema por usuario y sesión.

Principios de bash scripting.

Índice de la sección

Índice del curso