Projekty zapewniają sposób egzekwowania limitów wykorzystania zasobów przez różnych użytkowników i grupy. Można ich użyć do ograniczenia liczby plików otwieranych przez proces, maksymalnego rozmiaru pliku, użycia procesora, alokacji pamięci i innych. Każdy proces i użytkownik należy do jednego lub więcej projektów. Początkowy projekt użytkownika jest określany podczas logowania i będzie albo domyślny, albo ustawiony w sekcji Atrybuty użytkownika tego modułu. Użytkownicy mogą przełączać się na różne projekty za pomocą polecenia newtask .
Każdy projekt ma listę użytkowników i grup, którzy mogą uzyskać do niego dostęp, na przykład przełączając się do niego za pomocą polecenia newtask . To, że użytkownik jest członkiem projektu, niekoniecznie oznacza, że automatycznie do niego przyłączy się podczas logowania - należy to ustawić w sekcji Atrybuty użytkownika .
Najważniejsze atrybuty projektu to limity zasobów, które mają zastosowanie do jego członków. Każdy ma następujące atrybuty:
- Ratunek
- Zasób, który kontroluje, taki jak proces.max-file-descriptor dla maksymalnego możliwego do utworzenia rozmiaru pliku lub process.max-cpu-time dla czasu procesora, który proces może zużyć.
- Rodzaj zasobu
- Określa, kto może modyfikować ten limit zasobów, i prawie zawsze jest ustawiony na Uprzywilejowany . Ten atrybut jest opcjonalny - jeśli wybrano opcję <Brak> , zastosowany zostanie globalny limit systemowy dla zasobu. Znaczenie innych opcji to:
- Uprzywilejowany - może być modyfikowany tylko przez osoby uprzywilejowane (superużytkownik).
- System - Naprawiono na czas trwania instancji systemu operacyjnego.
- Podstawowy - może być modyfikowany przez właściciela procesu wywołującego.
- Górna granica
- Górny limit wykorzystania, który proces może zużyć przed uruchomieniem akcji. Jest on wprowadzany w bajtach, sekundach lub liczbie wątków, w zależności od typu zasobu.
- Działanie po przekroczeniu
- Określa, co dzieje się z procesem, który przekracza limit. Zazwyczaj jest to ustawione na Odmów , co po prostu powoduje niepowodzenie wywołania systemowego, które próbowało przekroczyć limit. Jednak przydatne mogą być również opcje wysyłania sygnału do procesu wykroczenia.