Recherche de site Web

Vérifiez et définissez les limites d’utilisateurs avec la commande Linux ulimit


La commande ulimit sous Linux est utilisée pour limiter la quantité de ressources système que les utilisateurs individuels peuvent consommer.

Qu’il s’agisse d’une intention de l’utilisateur ou d’un accident survenu, un seul utilisateur peut consommer toutes les ressources système disponibles telles que la mémoire RAM ou l’espace disque. Selon la nature de votre système Linux, vous pouvez limiter vos utilisateurs à ce dont ils pourraient réellement avoir besoin.

Il s’agit d’une modification essentielle couramment apportée aux serveurs privés virtuels ou à d’autres situations d’hébergement partagé, où un seul serveur peut être loué à des dizaines d’utilisateurs. Dans ce tutoriel, vous allez apprendre à utiliser la commande ulimit sous Linux à l’aide d’exemples. Suivez ci-dessous pour en savoir plus sur les différentes options que vous pouvez utiliser avec cette commande.

Dans ce tutoriel, vous allez apprendre :

  • Comment utiliser la commande ulimit sous Linux

Options fréquemment utilisées

Les bombes de fourche, les commandes comme oui et les programmes bogués peuvent facilement utiliser des tonnes de ressources système en très peu de temps. Cela aura un impact sur l’expérience de tous les autres utilisateurs du système, simplement à cause d’une personne qui abuse des ressources du système (intentionnellement ou non).

La commande ulimit est la solution à ce problème. Consultez quelques-uns des exemples ulimit ci-dessous pour voir comment limiter la consommation des ressources système pour vos utilisateurs.

Commande ulimit dans Linux Exemples de base

LE SAVIEZ-VOUS ?
Toutes les limites indiquées ci-dessous ne s’appliquent qu’à la session de shell bash actuelle. Pour effectuer une modification permanente à l’échelle du système, vous devez apporter des modifications au fichier /etc/security/limits.conf. Nous montrerons comment procéder dans une section ultérieure.

  1. Utilisez la commande ulimit avec l’option -a pour afficher une liste de toutes les limites de votre utilisateur sur le système, ou simplement ulimit seul pour afficher un résumé rapide.

    ulimit -a
    

  2. Pour limiter le nombre maximal de processus qu’un utilisateur peut générer, utilisez l’option -u. Cette commande les limitera à 10 processus. Cela s’occupera de choses comme les bombes à fourche.

    ulimit -u 10
    

    Si nous essayons de dépasser cette limite, nous rencontrerons une erreur :

    bash: fork: retry: Resource temporarily unavailable
    
  3. L’option -f nous permet de limiter la taille d’un fichier qu’un utilisateur peut créer. Cette commande limitera un utilisateur aux fichiers de 100 Ko ou moins.

    ulimit -f 100
    

    Et voici ce qui se passe si nous essayons maintenant de dépasser la limite.

    cat /dev/zero > file
    File size limit exceeded (core dumped)
    ls -lh file
    -rw-rw-r--. 1 linuxconfig linuxconfig 100K Feb 21 18:27 file 
    
  4. Avec ulimit, il est également possible de limiter la quantité maximale de mémoire virtuelle disponible pour un processus. Pour ce faire, utilisez l’option -v.

    ulimit -v 1000
    
  5. Pour limiter le nombre de fichiers qu’un utilisateur peut ouvrir à la fois (descripteurs de fichiers), utilisez l’option -n.

    ulimit -n 10
    

    Lorsque cette limite est dépassée, vous recevrez une erreur comme celle-ci :

    bash: command: Too many open files
    

À présent, vous devriez avoir l’idée que vous pouvez utiliser n’importe laquelle des options pour créer de nouveaux types de limites. Utilisez ulimit --help ou simplement ulimit -a pour voir les types de limites que vous pouvez imposer, et leurs options de commande correspondantes.

NOTE
Vous pouvez toujours utiliser la commande man pour en savoir plus sur la commande ulimit et sa documentation officielle. Cliquez sur le lien précédent pour voir comment ouvrir les pages de manuel pour n’importe quelle commande sur un système Linux.

Utilisation avancée

Jusqu’à présent, nous imposions des limites « douces » avec la commande ulimit. Ce sont des limites qui sont créées par les utilisateurs eux-mêmes, et ils peuvent aller aussi haut que la limite « dure » le leur permet. Pour créer une limite « stricte », nous allons modifier le fichier /etc/security/limits.conf.

Commande ulimit dans Linux Advanced Exemples

  1. Utilisez les autorisations root pour ouvrir le fichier /etc/security/limits.conf. Nous utiliserons nano dans cet exemple, mais vous pouvez utiliser un autre éditeur de texte si vous préférez.

    sudo nano /etc/security/limits.conf
    
  2. Au bas de ce fichier, nous imposerons des limites strictes à nos utilisateurs, qui sont appliquées à l’échelle du système. La syntaxe générale est la suivante :

    [domain] [type] [item] [value]
    

    [domaine] peut être un nom d’utilisateur, un nom de groupe ou un caractère générique. [type] peut être « doux » ou « difficile » selon le type de limite que vous souhaitez appliquer. [item] est ce que vous souhaitez limiter, par exemple « CPU » ou « nproc » (nombre de processus), etc. [Value] est le nombre que vous souhaitez appliquer.

    Toutes ces informations sont résumées dans le fichier lui-même, au cas où vous oublieriez.

  3. À titre d’exemple, essayons de limiter le nombre de processus que les utilisateurs du groupe « entreprise » peuvent générer. L’ajout de cette ligne au fichier ne permettrait aux utilisateurs du groupe de générer qu’un maximum de 10 processus.

    @corporate        hard    nproc           20
    
  4. Pour un autre exemple, limitons la quantité de taille de fichier que l’utilisateur « linuxconfig » peut utiliser. Cela limitera l’utilisateur à 10 Mo. Nous devons écrire le nombre comme 10000 puisqu’il doit être en kilo-octets.

    linuxconfig        hard    fsize           10000
    

Utilisez l’un des types de limites décrits dans le fichier /etc/security/limits.conf pour imposer des limites aux utilisateurs, aux groupes ou à tout le monde sur l’ensemble du système.

Réflexions finales

Dans ce tutoriel, nous avons tout appris sur la commande ulimit sous Linux. La commande ulimit est essentielle pour les systèmes qui ont plusieurs utilisateurs, afin de s’assurer que tout le monde joue équitablement et n’utilise que sa part des ressources système.

Lorsque vous avez besoin que vos limites persistent, vous pouvez modifier le fichier de configuration ulimit comme indiqué ci-dessus, pour imposer des limites système aux utilisateurs, aux groupes ou à chaque compte du système.

Articles connexes: