Configuration des quotas de disque

Introduction

Petits rappels sur les systèmes de fichiers:

Système de fichiers: organisation logique des données dans un disque ou une partition.

Formatage: c'est l'opération qui consiste à créer un nouveau système de fichiers dans un disque ou une partition. Sous Linux, on utilise la commande générique mkfs, par exemple.

Racine d'un système de fichiers: la racine correspond au répertoire d'attache du système de fichiers.

Bloc: c'est l'unité d'espace du système de fichiers. Il peut varier d'un système à l'autre.

Premier temps

Pour implémenter les quotas de disque, suivez les étapes ci-dessous:

-Activez les quotas par système de fichiers en modifiant /etc/fstab
-Remontez le(s) système(s) de fichiers
-Créez le fichier de quota et créez le tableau d'utilisation du disque dur
-Assignez des quotas

Chacune de ces étapes est examinée en détails dans les sections suivantes:

Activations des Quotas

En tant que super-utilisateur et en utilisant l'éditeur de texte de votre choix, ajoutez les options usrquota et/ou grpquota aux systèmes de fichiers nécessitant des quotas:
LABEL=/       /                ext3    defaults        1 1
LABEL=/home   /home            ext3    defaults,usrquota,grpquota 1 2
none          /dev/pts         devpts  gid=5,mode=620  0 0
none          /dev/shm         tmpfs   defaults        0 0
none          /proc            proc    defaults        0 0
none          /sys             sysfs   defaults        0 0
/dev/sda3     swap             swap    defaults        0 0
/dev/hdc      /media/cdrom     auto    pamconsole,exec,noauto,fscontext=system_u:object_r:removable_t,managed 0 0
/dev/fd0      /media/floppy    auto    pamconsole,exec,noauto,fscontext=system_u:object_r:removable_t,managed 0 0
Ici, les quotas pour l'utilisateur et le groupe d'utilisateurs sont activés dans le système de fichiers /home.

Remontage des systèmes de fichiers

Après avoir ajouté les options userquota et grpquota, remonter chaque système de fichiers dont l'entrée fstab a été modifiée. Si le système de fichiers n'est utilisé par aucun processus, utilisez la commande umount suivi de mount pour monter à nouveau le système de fichiers. Si le système de fichiers est actuellement utilisé, la méthode la plus simple pour remonter le système de fichier consiste à redémarrer le système.

Création de fichiers quota

La commande quotacheck examine le système de fichiers doté d'un quota et établit un tableau de l'utilisation actuelle du disque pour chaque système de fichiers.

Afin de créer des fichiers quota (aquota.user et aquota.group) sur le système de fichiers, utilisez l'option -c de la commande quotacheck.

Par exemple, si les quotas d'un utilisateur et d'un groupe sont activés dans la partition /home, créez le fichier dans le répertoire /home:
# quotacheck -acug /home
Si aucune des deux options -u ou -g n'est spécifiée, seul le fichier quota utilisateur sera créé.

Si l'option -g est la seule option spécifiée, seul le fichier quota groupe sera créé.

Une fois les fichiers créés, exécutez la commande suivante pour créer le tableau de l'utilisation actuelle du disque pour chaque système de fichiers avec des quotas activés:
# quotacheck -avug
Les options sont utilisées de la manière suivante:

-a : vérifie tous les systèmes de fichiers montés localement et dotés de quotas activés
-v : affiche des messages de statut (verbose) lors de la vérification du quota
-u : vérifie les informations relatives au quota de disque utilisateur
-g : vérifie les informations relatives au quota de disque groupe

Taille d'un bloc

Afin de fixer correctement vos limites douce et forte il est préférable de connaitre la taille en octet d'un bloc:
# dumpe2fs /dev/hdc11|grep −i 'block size'
2 types de limites:

-La limite douce (ou soft limit en bon français): indique la quantité maximale d'espace qu'un utilisateur peut occuper sur le système de
fichiers. Si cette limite est atteinte, l'utilisateur reçoit des messages d'avertissement quant au dépassement du quota qui lui a été attribué. Si
son utilisation est combinée avec les délais (ou grace period), lorsque l'utilisateur continue à dépasser la soft limite après que se soit écoulé
le délai de grâce, alors il se retrouve dans le même cas que dans l'atteinte d'une limite dure.

-La limite dure (ou hard limit) définie une limite absolue pour l'utilisation de l'espace. L'utilisateur ne peut pas dépasser cette limite. Passée cette limite, l'écriture sur ce système de fichiers lui est interdite.

Attribution de quotas par utilisateur

La dernière étape consiste à attribuer les quotas de disque à l'aide de la commande edquota.

La configuration d'un quota pour un utilisateur, à l'invite du shell, exécutez la commande suivante en étant connecté en tant que super-utilisateur:
# edquota nom d'utilisateur
Effectuez ces étapes pour chaque utilisateur auquel vous souhaitez attribuer un quota. Par exemple, si un quota est activé dans /etc/fstab pour la partition /home (/dev/hda3) et que la commande edquota testuser est exécutée, l'extrait suivant apparaétra:
Disk quotas for user testuser (uid 501):
Filesystem    blocks       soft       hard     inodes     soft     hard
  /dev/hda3   440436          0          0      37418        0        0
-La première colonne correspond au nom du système de fichiers doté d'un quota activé.
-La deuxième colonne affiche le nombre de blocs actuellement employés par un utilisateur.
-Les deux colonnes suivantes sont utilisées pour déterminer les limites douces (soft limits) et dures (hard limits) des blocs correspondant à l'utilisateur du système de fichiers.
-La colonne inodes affiche le nombre d'inodes actuellement employées par l'utilisateur.
-Les deux dernières colonnes servent à déterminer les limites douces et dures des inodes de l'utilisateur sur un système de fichiers.

Si toute valeur correspond à 0, cette limite n'est pas déterminée. Dans l'éditeur de texte, changez les limites voulues. Par exemple,

Disk quotas for user testuser (uid 501):
Filesystem    blocks       soft       hard     inodes     soft     hard
  /dev/hda3   440436     500000     550000     37418        0        0
Afin de vérifier que le quota pour l'utilisateur a bien été établi, utilisez la commande suivante:
quota testuser
Attribution de quotas par groupe

Des quotas peuvent également être attribués groupe par groupe. Par exemple, pour établir le quota groupe pour le groupe devel, utilisez la commande (le groupe doit bien sûr exister avant de déterminer un quota pour ce groupe):
edquota -g devel
Cette commande permet d'afficher dans l'éditeur de texte, le quota actuel pour le groupe:
Disk quotas for group devel (gid 505):

Filesystem    blocks       soft       hard     inodes     soft     hard
  /dev/hda3   440400          0          0      37418        0        0
Modifiez les limites, enregistrez le fichier et configurez ensuite le quota.

Pour vérifier que le quota groupe a bien été établi:
quota -g devel
Rapport sur les quotas de disque

Pour afficher un rapport sur l'utilisation du disque pour tous les systèmes de fichiers dotés de quotas activés, utilisez la commande ci-dessous:
repquota -a
Maintien de quotas justes

Dès lors qu'un système de fichiers n'est pas démonté correctement (suite à un plantage du système par exemple), il est nécessaire d'exécuter la commande
quotacheck. Ceci étant, vous pouvez exécuter quotacheck de façon régulière, même si le système n'a pas planté. L'exécution périodique de cette commande
permet de maintenir la justesse des quotas.
quotacheck -avug
Activation et désactivation des quotas

Il est possible de désactiver des quotas sans pour autant devoir leur donner une valeur équivalente à 0. Pour désactiver tout les quotas utilisateur et groupe:
quotaoff -vaug
Si aucune des options -u ou -g n'est spécifiée, seuls les quotas utilisateur seront désactivés. En revanche si seule l'option -g est spécifiée, seuls les quotas groupe seront désactivés.

Pour réactiver des quotas, utilisez la commande quotaon avec les mêmes options.

Par exemple, pour activer les quotas utilisateur et groupe pour tous les systèmes de fichiers, vous utiliserez la commande suivante:
quotaon -vaug
Pour activer les quotas pour un système de fichiers spécifique, comme par exemple /home, vous utiliserez la commande suivante:
quotaon -vug /home