follow me !

Documentations -- Système & réseau

Limitation de l'utilisation des espaces disques avec les quotas

Limitation de l'utilisation des espaces disques avec les quotas

Edi Stojicevic

Ce document est publié sous la licence GNU FDL

Historique des versions
Version 0.115 novembre 2005ES
Première version

1. Présentation

Lorsque vous disposez d'un système multi-utilisateurs, il se peut qu'un utilisateur plante le système en remplissant son répertoire personnel avec une multitude de fichiers. Ainsi, il va petit à petit remplir completement le disque dur et rendre inaccessible l'utilisation de ce disque par les autres utilisateurs. Le système des quotas permet d'enrayer ce type de problème en fixant une limite de l'utilisation de l'espace disque par utilisateur ou par groupe.

L'utilisation des quotas sur un système Debian est relativement facile vu que les noyaux fournis dans la distribution sont tous compilés avec le support des quotas.

Il y a deux façon d'utiliser les quotas :

  • Par utilisateur

  • Par groupe

Par utilisateur, vous fixez une taille limite d'utilisation sur l'espace disque que chaque utilisateur peut utiliser. Dans le cas des groupes, vous donnez une limite sur l'utilisation totale du disque à tous les membres d'un groupe prédéfini.

Généralement, il est plus utile d'appliquer les quotas par utilisateur car ainsi vous n'aurez pas à vous soucier de savoir quel membre d'un groupe a utilisé tout l'espace.

2. Configuration

Afin de mettre en place un système de quota, trois choses doivent être faites :

  • Monter les systèmes de fichiers avec le support des quotas

  • Installer les logiciels de quota

  • Configurer vos limites

Le support des quotas est activé une fois les systèmes de fichiers montés et doivent être donc renseigner dans votre fichier /etc/fstab.

La spécification des options est relativement facile. Voici un exemple sans le support des quotas :

/dev/hda1       /       ext2    defaults           1       1

qui devra être changé ainsi pour activer les quotas par utilisateur :

/dev/hda1       /       ext2    defaults,usrquota  1       1

Une fois le fichier modifié vous pouvez redémarrer votre machine afin de prendre les modifications en compte et installer le logiciel. Ainsi les partitions disposeront des options des quotas lors de leur montage cependant elles ne sont pas encore activés pour le système actuel. Pour les activer, il faut lancer la commande suivante pour chaque système de fichiers auquel vous voulez ajouter le support des quotas :

# mount -o remount,usrquota /home

Le module du noyau concernant les quotas doit être également chargé. Pour qu'il soit chargé au démarrage de la machine, il suffit de le rajouter le nom du module dans le fichier /etc/modules. Le chargement du module s'effectue à l'aide de la commande suivante :

# modprobe quota_v2
# echo "quota_v2" >> /etc/modules

Le système des quotas à une notion de limite "souple" et "dure". La limite "souple" est une limite avec laquel l'utilisateur peut vivre pendant un moment (par défaut 7 jours). Une limite "dure" est une limite que l'utilisateur ne peut pas franchir.

Ces limites sont enregistrées dans des fichiers spéciaux que nous devons créer pour chaque système de fichier qui nécessitent la mise en place de quotas.

En continuant notre exemple avec le système de fichier "home", nous pourrions créer un fichier pour les quotas des utilisateurs et un pour les quotas des groupes :

# touch /home/aquota.user
# touch /home/aquota.group
# chmod 600 /home/aquota.user /home/aquota.group

3. Installation

Une fois ces petites configuration effectuées, nous sommes prêts pour l'installation des logiciels :

# apt-get install quota quotatool

Lors de l'installation, on vous demandera si vous désirez envoyer un courrier électronique aux utilisateurs ayant dépassés leur quotas.

4. Utilisation

Une commande permettant d'activer les quotas sans redémarrer la machine :

# quotacheck -vagum

Pour mettre en place une limite "souple" de 500Mo et une limite "dure" de 750Mo pour l'utilisateur "raymond", voici la commande miracle :

# quotatool -u raymond -bq 500M -l '750 Mb' /home

Une tâche de la crontab va effectuer une vérification tous les jours et avertir les utilisateurs concernés (si vous avez répondu "Yes" lors de l'installation des paquets) s'ils dépassent leur limite "souple" et s'ils dépassent leur limite "dure" la notification sera immédiate :

raymond@bidochon:~/$ mkdir test
mkdir: cannot create directory `test': Disk quota exceeded
raymond@bidochon:~/$ 

L'administrateur système de la machine peut l'utilisation des quotas en cours ainsi que l'espace disque en lançant :

# repquota /home

Si jamais vous désirez de supprimer le quota d'un utilisateur, il vous suffit tout simplement de mettre à "0" leurs limites ("souple" et "dure").