Linux: Ulimit, limitez les ressources allouée à vos utilisateurs et leurs processus

Que ce soit afin d’éviter les débordement potentiels (ex: Fork bomb) ou bien pour partager équitablement les ressources disponibles, il est bien utile de limiter les ressources allouées aux utilisateurs et processus de votre système.

Pour ce faire, on peux utiliser la commande « ulimit » dont voici les détails.

ulimit

Limites utilisateur – limite l’utilisation de ressources sur le système.

Syntaxe
ulimit [-acdfHlmnpsStuv] [limit]

Options

-S Changer et afficher les limites « douces » associées à une ressource.
-H Changer et afficher les limites « dur » associées à une ressource.

-a Affiche toutes les limites actuelles.
-c La taille maximum de fichiers cœur crées.
-d La taille maximum du segment de données d’un processus.
-f La taille maximum des fichiers crées par le shell. (option par défaut)
-l La taille maximum qui peut être bloquée en mémoire.
-m La taille maximum de mémoire en RAM.
-n Nombre maximum de descripteurs de fichiers ouverts.
-p La taille du tampon du tube (pipe).
-s La taille maximum de la pile.
-t Le montant maximum de temps processeur en secondes.
-u Le nombre maximum de processus disponibles pour un seul utilisateur.
-v Le montant maximum de mémoire virtuelle disponible pour le processus.

ulimit apporte le contrôle sur les ressources disponibles au shell ainsi qu’aux processus démarrés par celui-ci, sur les systèmes qui permettent ce contrôle.

La limite « douce » est la valeur que le noyau impose à la ressource correspondante. La limite « dur » agit comme un plafond pour la limite « douce ».

Un processus sans privilèges pourra seulement définir sa limite « douce » à une valeur dans l’intervale de 0 jusqu’à la limite « dur » et (irrémédiablement) abaisser sa limite « dur ». Un processus avec des privilèges peux faire des changement arbitraires sur les deux limites.

Si la limite est définie, c’est la nouvelle valeur spécifiée de la ressource désignée. Autrement, la valeur courante de la limite « douce » pour la ressource désignée est affichée, à moins que l’option ‘-H’ soit passée.

Lors de la définition de nouvelles limites, si ni ‘-H’ ni ‘-S’ ne sont précisés alors les limites « douce » et « dur » sont affectées.

Restreindre les processus par utilisateurs ( -u) peux être utile pour limiter les effets potentiels d’une fork bomb.

Les valeurs s’incrémentent par saut de 1024 octets, sauf pour ‘-t’, lequel est en secondes, ‘-p’, dont l’unité est un block de 512 octets et ‘-n’ et ‘-u’, qui sont des valeurs sans échelle.

Le statut de retour est zéro sauf si une paramètre invalide a été saisi, un argument non numérique autre que « unlimited » est passé comme limite, ou une erreur c’est produite lors de l’initialisation d’une nouvelle limite.

ulimit est une commande intégré dans le bash.

Source : http://ss64.com/bash/ulimit.html

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.