Informations
Un quota est une limite imposée par l’administrateur d’un serveur aux utilisateurs.
Cette limite porte sur l’espace disque utilisé par chaque utilisateur ( ou groupe d’utilisateur ).
Les quotas se définissent par partition.
Il y a un mini HOWTO ICI
Mise en place
Le kernel redhat prends en charge les quotas par défaut et les outils standards pour les fixer sont installés.
Avant toute chose, il faut activer la gestion des quotas sur la (les ) partition(s) concernée(s).
Pour ce faire, modifier le fichier /etc/fstab.
-Avant:
/dev/hda6 /home ext3 defaults 0 2
-Après:
/dev/hda6 /home ext3 defaults,usrquota,grpquota 0 2
Redémarrer la machine (pas réellement nécessaire mais ça simplifie les instructions).
Création des fichiers gérant les quotas.
Attention, j’utilise l’option -m car mon système de fichiers est monté. Il faudrait démonter le volume pour bien faire, mais bon, ça fonctionne comme ça…
quotacheck -m /var/
quotacheck -gm /var/
quotaon
Une fois cette commande lancée, vous devez avoir des fichiers supplémentaires sur le volume concerné par les quotas.
Ces fichiers se nomment aquota.group et aquota.user.
Pour faciliter la gestion des quotas, j’ai installé un outil nommé quotatool. En effet, les quotas se définissent non pas en Mo ou Ko, mais en nombre de blocs disque dur.
Cette taille variant d’un système à l’autre, la calcul devient vite difficile. Quotatool, permet de gérer les quotas avec des unités plus classiques Mo ou ko.
Installer l’outil quotatool comme suit :
– Téléchargement du logiciel
wget http://quotatool.ekenberg.se/quotatool-1.4.9.tar.gz
Vérifiez sur le site téléchargement de quotatool qu’il n’y ait pas de version plus récente.
– Décompacter le logiciel
tar xvfz quotatool-1.4.9.tar.gz
cd quotatool-1.4.9
– Compiler le soft
./configure
make
– Installer le logiciel
ln -s /usr/share/man/ /usr/local/man
make install
La création du lien symbolique est un correctif maison, car j’avais un message d’erreur lors de l’installation m’indiquant que le dossier /usr/local/man n’existait pas.
Définition des quotas
Exemple pour un compte mon_utilisateur. On fixe 1Go maxi avec limite soft à 800Mo.
quotatool -u mon_utilisateur -b -q 800MB /home # quota 'soft'
quotatool -u mon_utilisateur -b -l 1000MB /home # quota 'hard'
Il faut bien faire attention à ce que la limite soft soit plus basse que la limite hard afin d’éviter tout problèmes.
On peut bien entendu fixer des limites sur un groupe d’utilisateurs.
Test
Voici le résultat qu’on obtient pour l’utilisateur toto ayant les restrictions données ci-dessus.
J’ai une image iso de 500Mo environ que je vais copier.
Je vais donc passer ma limte soft, puis ma limite hard.
[toto@centOS ~]$ cp arch-0.7.2.iso arch-0.7.2.iso2
J’obients donc le 1er message m’indiquant la limite soft.
hdb2: warning, user block quota exceeded.
Puis le message bloquant cette fois m’indiquant que j’ai atteinds la limite hard.
hdb2: write failed, user block limit reached.
cp: écriture de `arch-0.7.2.iso2': Débordement du quota d'espace disque
Je vérifie mes limites :
[toto@centOS ~]$ quota
Disk quotas for user toto (uid 516):
Filesystem blocks quota limit grace files quota limit grace
/dev/hdb2 1024000* 819200 1024000 17 0 0
root peut vérifier les limites de toto avec la commande quota -u toto
.
root peut également modifier les valeurs par défaut du système de quota comme la période de « grace », avec la commande edquota -t