Mise en place de quotas disque

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.