Los proyectos proporcionan una manera de imponer límites en el uso de recursos para diferentes usuarios y grupos. Se pueden usar para restringir la cantidad de archivos que puede abrir un proceso, su tamaño máximo de archivo, uso de CPU, asignación de memoria y más.

Cada proceso y usuario pertenece a uno o más proyectos. El proyecto inicial de un usuario se determina en el momento del inicio de sesión y será `predeterminado` o el proyecto se establecerá en la sección Atributos del usuario de este módulo. Los usuarios pueden cambiar a diferentes proyectos utilizando el comando `newtask` .

Cada proyecto tiene una lista de usuarios y grupos a los que se les permite acceder, por ejemplo, cambiando a él con el comando `newtask` . Sin embargo, el hecho de que un usuario sea miembro de un proyecto no significa necesariamente que pertenecerá automáticamente al momento de inicio de sesión; esto debe establecerse en la sección Atributos del usuario .

Los atributos más importantes de un proyecto son los límites de recursos que se aplican a sus usuarios miembros. Cada uno tiene los siguientes atributos:

Recurso
  El recurso que controla, como `process.max-file-descriptor` para el tamaño máximo de archivo creable, o `process.max-cpu-time` para la cantidad de tiempo de CPU que puede consumir un proceso.
Tipo de recurso
  Determina quién puede modificar este límite de recursos y casi siempre se establece en Privilegiado . Este atributo es opcional: si se selecciona <Ninguno> , se aplicará el límite global del sistema para el recurso. Los significados de las otras opciones son:
  - Privilegiado : solo puede ser modificado por personas que llaman con privilegios (superusuario).
  - Sistema : corregido durante la duración de la instancia del sistema operativo.
  - Básico : puede ser modificado por el propietario del proceso de llamada.
Limite superior
  El límite superior de uso que un proceso puede consumir antes de que se active la acción. Esto se ingresa en bytes, segundos o número de hilos, dependiendo del tipo de recurso.
Acción cuando se excede
  Determina qué sucede con un proceso que excede el límite. Por lo general, esto se establece en Denegar , lo que simplemente hace que falle la llamada al sistema que intentó exceder el límite. Sin embargo, las opciones para enviar una señal al proceso ofensivo también pueden ser útiles.