Comment définir des limites pour les processus en cours d'exécution par les utilisateurs sous Linux
L’une des beautés de Linux est que vous pouvez presque tout contrôler. Cela donne à un administrateur système un grand contrôle sur son système et une meilleure utilisation des ressources système.
Même si certains n'ont peut-être jamais pensé à cela, il est important de savoir que sous Linux, vous pouvez limiter la quantité de ressources qu'un seul utilisateur peut utiliser et pendant combien de temps.
Lire aussi : Comment augmenter la limite du nombre de fichiers ouverts sous Linux
Dans ce court sujet, nous allons vous montrer comment limiter le nombre de processus démarrés par l'utilisateur et comment vérifier les limites actuelles et les modifier.
Avant d’aller plus loin, il y a deux choses que nous devons souligner :
- Vous avez besoin d'un accès root à votre système pour modifier les limites d'utilisateurs
- Vous devez être extrêmement prudent si vous envisagez de modifier ces limites
Pour configurer les limites d'utilisateurs, nous devrons éditer le fichier suivant :
/etc/security/limits.conf
Ce fichier est utilisé pour appliquer ulimit créé par le pam_module.
Le fichier a la syntaxe suivante :
<domain> <type> <item> <value>
Ici, nous nous arrêterons pour discuter de chacune des options :
- Domaine – cela inclut les noms d'utilisateur, les groupes, les plages de guid, etc.
- Type – limites souples et strictes
- Élément : élément qui sera limité : taille du noyau, taille du fichier, nproc, etc.
- Valeur – c'est la valeur pour la limite donnée
Un bon exemple de limite est :
@student hard nproc 20
La ligne ci-dessus fixe une limite stricte de 20 processus maximum pour le groupe "étudiant"
.
Si vous souhaitez connaître les limites d'un certain processus, vous pouvez simplement "catalyser" le fichier de limites comme ceci :
cat /proc/PID/limits
Où PID est l'ID de processus réel, vous pouvez trouver l'ID de processus à l'aide de la commande ps. Pour une explication plus détaillée, lisez notre article qui dit - Rechercher les processus Linux en cours d'exécution et définir les limites de processus par niveau d'utilisateur
Voici donc un exemple :
cat /proc/2497/limits
Exemple de sortie
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 32042 32042 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 32042 32042 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
Toutes les lignes sont assez explicites. Cependant, si vous souhaitez en savoir plus sur les paramètres que vous pouvez saisir dans le fichier limits.conf, vous pouvez consulter le manuel fourni ici.
Si vous avez des questions ou des commentaires, n'hésitez pas à les soumettre dans la section commentaires ci-dessous.