Sur une machine, notamment sur un serveur soumis à de nombreuses solicitations en parallèle il peut être utile d'affecter des quotas de ressources.
Sous FreeBSD, bien que prévu en natif, cela n'est pas configuré par défaut et nécessite quelques paramétrages.
La classe par défaut (default) donne une accès illimité à toutes les ressources. Pour modifier le quota des ressources, il faut commencer par créer une nouvelle classe.
La définition des classes est réalisée dans le fichier /etc/login.conf. La classe par défaut est définie comme suit :
default:\
:passwd_format=md5:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\
:path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/X11R6/bin ~/bin:\
:nologin=/var/run/nologin:\
:cputime=unlimited:\
:datasize=unlimited:\
:stacksize=unlimited:\
:memorylocked=unlimited:\
:memoryuse=unlimited:\
:filesize=unlimited:\
:coredumpsize=unlimited:\
:openfiles=unlimited:\
:maxproc=unlimited:\
:sbsize=unlimited:\
:vmemoryuse=unlimited:\
:priority=0:\
:ignoretime@:\
:umask=022:
Avec les significations suivantes :
| Variable | Description | Exemple |
|---|---|---|
| copyright | ||
| welcome | Fichier contenant le message de bienvenue lors d'une connexion | |
| setenv | Définition de variables d'environnement, séparées par des virgules | MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES |
| path | Chemin de recherche de sexécutables et bibliothèques par défaut, chaque chemin étant séparé par des espaces | /sbin /bin /usr/sbin /usr/bin /usr/games |
| nologin | ||
| cputime | Temps CPU maximal qu'un processus a le droit d'utiliser | |
| datasize | La taille mémoire maximale de données qu'un processus peut consommer | |
| stacksize | Quantité maximale de m"moire de la pile pour un processus | |
| memorylocked | Quantité maximale de mémoire qu'un processus peut verrouiller | |
| memoryuse | Quantité maximale de mémoire qu'un processus peut utiliser | |
| filesize | Taille maximale d'un fichier | |
| coredumpsize | Taille maximale d'un coredump | |
| openfiles | Nombre maximal de fichier qu'un processus peut ouvrir | |
| maxproc | Nombre maximal de processus qu'un utilisateur peut avoir | |
| sbsize | Taille maximale d'un tampon de socket qu'une application de l'utilisateur peut utiliser | |
| vmemoryuse | ||
| priority | Priorité des processus de l'utilisateur | |
| timezone | Valeur par défaut de la variable d'environnement TZ | |
| minpasswordlen | Taille minimale du mot de passe. Il faudra vérifier que tous les mots de passe actuels de la classe respectent cette règle | minpasswordlen=15 |
| mixpasswordcase | Oblige à définir un mot de passe mélangeant des majuscules et des minuscules | |
| ignorenologin | Si cette variable est présente, l'utilisateur peut se connecter même si /var/run/nologin existe | |
| ftp-chroot | L'utilisateur est redirigé vers une encapsulation (chroot) lors d'une connexion FTP | |
| passwd_format | Définit le hachage utilisé pour stocker les mots de passe dans le fichier /etc/master.passwd. la valeur par défaut est md5, mais l'on peut utiliser des (DES), blf (Blowfish) ou nthash (Windows NT). | |
| times.allow | Définit les jours et heures où l'utilisateur peut se connecter. Le jour est noté Mo, Tu, We, Th, Fr, Sa et Su, accolé des heures (24 heures) séparées par un tiret (-), le tout séparé par des virgules | times.allow=Mo8-18,Tu8-19,We8-17 |
| times.deny | de la même façon que times.allow, cette variable indique quand l'utilisateur ne peut pas se connecter. Un utilisateur déjà connecté n'est pas déconnecté. En cas de conflit avec times.allow, c'est la sécurité qui prime, donc times.deny qui a la priorité | times.allow=Mo12-14,Tu12-14,We12-14 |