Quota Mini-Howto

par Albert M.C. Tam (bertie@scn.org)

Version du 08 Ao�t 1997
(Adaptation fran�aise par Antoine Levavasseur levavass@efrei.fr, le 14 Octobre 1997). L'objectif de ce mini-howto est d'expliquer comment mettre en place et utiliser les quotas sous linux.


Derni�re Modification : Fri Aug 8 09:45:05 HKT 1997

Pr�ambule : Ce document a �t� �crit par Albert M.C. Tam (bertie@scn.org). La possibilit� d'utiliser, copier, distribuer ce document pour une utilisation non-commerciale est permise, � partir du moment o� la pr�sente remarque et les noms de l'auteur et de l'�diteur apparaissent sur toutes les copies et/ou supports du document; et que le document n'est pas modifi�. Ce document est diffus� en esp�rant qu'il sera utile, mais sans AUCUNE GARANTIE, exprim�e ou implicite. Bien que tous les efforts ait �t� faits pour s'assurer de l'exactitude des informations du pr�sent document, l'auteur / �diteur / mainteneur n'assume AUCUNE RESPONSABILITE pour des erreurs, ou des domages r�sultant de l'utilisation des informations du pr�sent document.

Ce document d�crit comment activer un quota sur le syst�me de fichier d'une machine Linux, attribuer des quotas pour les utilisateurs et les groupes, ainsi que l'utilisation de diverses commandes sur les quotas. Il est destin� aux utilisateurs utilisant un noyau 2.x (test� r�cemment sur RedHat 4.1 avec un noyau 2.0.27). Les utilisateurs qui utilisent des noyaux plus vieux doivent se mettre � jour avec un noyau plus r�cent pour pouvoir utiliser les quotas.

N'h�sitez pas � envoyer vos commentaires et point-de-vue � bertie@scn.org si vous trouvez une erreur, ou qu'une information manquante. J'apr�cierai.

1. Les Quotas, qu'est-ce que c'est ?

Les quotas permettent de sp�cifier les limites sur deux aspects du stockage sur disque : le nombre d'i-noeuds qu'un utilisateur ou un groupe peux poss�der; et le nombre de blocks disques qui peuvent �tres allou�s � un utilisateur ou un groupe d'utilisateurs.

L'id�e des quotas, c'est que les utilisateurs sont oblig�s de rester sous leur limite de consomation de disque, perdant leur possiblit� de saturer la totalit� de l'espace disque d'un syst�me.

Les quotas sont support�s sur une base par utilisateur et par syst�me de fichier. Si il y a plus d'un syst�me de fichiers ou un utilisateur qui est cens� cr�er des fichiers, alors les quotas doivent �tre configur�s s�paremment sur chaque syst�me de fichier.

1.1 Etat actuel des quotas sous Linux

Le support des quotas a �t� int�gr� dans le noyau depuis la version 1.3.8x il me semble. Maintenant il est partie prenante du noyau Linux version 2.0. Si votre syst�me ne supporte pas les quotas, je recommande chaudement une mise � jour.

Actuellement les quotas ne fonctionnent qu'avec le syst�me de fichier ext2.

1.2 Que faut-il pour utiliser les Quotas sur Linux

Noyau

Les sources du noyau 2.x sont disponibles sur http://sunsite.unc.edu/pub/Linux/kernel/v2.0 ou plus pr�s sur ftp.lip6.fr .

Programmes pour les quotas

Selon votre distribution Linux, vous avez, ou devez avoir, ou ne pas avoir les programmes des quotas install�s sur votre syst�me. Si vous ne les avez pas, alors t�l�chargez les sources des programmes pour les quotas sur ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz

2. Partie I : La configuration

2.1 Reconfigurer votre noyau

Reconfigurez votre noyau et ajoutez le support des quotas en r�pondant 'y' � :

Quota support (CONFIG_QUOTA) [n] y

2.2 Compiler et installer les programmes des quotas

Les sources des programmes des quotas sont disponibles sur ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz

2.3 Modifier les scripts init de votre syst�me pour v�rifier les quotas et les activer lors du boot.

Voici un exemple :

# Check quota and then turn quota on.
if [ -x /usr/sbin/quotacheck ]
then
     echo "Checking quotas. This may take some time."
     /usr/sbin/quotacheck -avug
     echo " Done."
fi

if [ -x /usr/sbin/quotaon ]
then
      echo "Turning on quota."
      /usr/sbin/quotaon -avug
fi

La r�gle d'or est de toujours activer les quotas apr�s que votre syst�me de fichier ait �t� mont� avec /etc/fstab, sinon les quotas ne fonctionneront pas. Je recommande d'activer les quotas � la fin de votre script init, ou, si vous pr�f�rez, juste apr�s la partie ou le script init monte les syst�mes de fichiers.

2.4 Modifier /etc/fstab

Les partitions sur lesquelles vous n'avez pas encore activ� les quotas ressemblant normalement � :

/dev/hda1       /       ext2    defaults        1       1
/dev/hda2       /usr    ext2    defaults        1       1

Pour activer le support des quotas utilisateur pour un syst�me de fichiers, ajoutez "usrquota" dans le quatri�me champ contenant le mot "defaults" (man fstab pour avoir des d�tails).

/dev/hda1       /       ext2    defaults                1       1
/dev/hda2       /usr    ext2    defaults,usrquota       1       1

Remplacez "usrquota" par "grpquota", si vous avez besoin du support des quotas pour les groupes sur un syt�me de fichiers.

/dev/hda1       /       ext2    defaults                1       1
/dev/hda2       /usr    ext2    defaults,grpquota       1       1

Vous avez besoin � la fois du support des quotas pour les groupes et les utilisateurs ?

/dev/hda1       /       ext2    defaults                        1       1
/dev/hda2       /usr    ext2    defaults,usrquota,grpquota      1       1

2.5 Cr�er les enregistrements des quotas "quota.user" et "quota.group"

Les deux fichiers d'enregistrement des quotas, quota.user et quota.group, doivent �tre poss�d�s par root, et avec les permissions lecture_�criture pour root et personne d'autre.

Logguez-vous en root. Allez sur la partition root o� vous voulez activer les quota, et cr�ez quota.user et quota.group en faisant :

touch /partition/quota.user
touch /partition/quota.group
chmod 600 /partition/quota.user
chmod 600 /partition/quota.group

2.6 Rebooter

Maintenant rebooter votre syst�me pour que les changements que vous avez fait prennent effet.

Remarquez que pour les partitions pour lesquelles vous souhaiteriez activer les quotas dans le futur, vous avez seuleument besoin des �tapes 4, 5 et 6.

3. Partie II : Attribuer les quotas aux utilisateurs et aux groupes.

Cette op�ration est assur�e par la commande edquota (man edquota pour les d�tails).

J'utilise g�n�ralement quotachek avec les flags -avug pour avoir les fichiers les plus � jour possible avant d'�diter les quotas. C'est juste une habitude personnelle, mais pas une �tape indispensable.

3.1 Attribuer les quotas pour un utilisateur particulier

Voici un exemple. J'ai un utilisateur avec le loggin bob sur mon syst�me. La commande edquota -u bob me lance vi (ou l'�diteur sp�cifi� dans la variable d'environnement $EDITOR) pour �diter les quotas pour l'utilisateur bob sur chacune des partitions o� le quota est activ�.

Quotas for user bob:
 /dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500)
             inodes in use: 356, limits (soft = 1000, hard = 1500)

block utilis�s est le nombre total de blocks (en Ko) que l'utilisateur a d�j� consomm� sur la partition.

i-noeuds utilis�s est le nombre total de fichiers que l'utilisateur poss�de sur la partition.

3.2 Attribuer les quotas sur un groupe particulier

Maintenant, il y a un groupe games sur mon syst�me. edquota -g games lance une nouvelle fois l'�diteur vi pour �diter le groupe games :

Quotas for group games:
   /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000)
              inodes in use: 1454, limits (soft = 3000, hard = 4000)

3.3 Attribuer les quotas pour plusieurs utiliateurs avec la m�me valeur

Pour attribuer rapidement les quotas pour, par exemple 100 utilisateurs, sur mon syst�me avec la m�me valeur que pour l'utilisateur bob, je vais d'abord �diter les quotas de bob � la main, et ensuite ex�cuter :

edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`

en partant du principe que vous utilisez csh, et que les UID de vos utilisateurs commencent � partir de 500.

En plus de edquota, il y a trois termes avec lesquels vous devez vous familiariser : Limite douce (Soft Limit), Limite dure (Hard Limit), et d�lais (Grace P�riod).

Limite douce (Soft Limit)
La limite douce indique la quantit� maximale qu'un utilisteur peut utiliser sur une partition. En combinaison avec le d�lais (Grace P�riod), il agit d'une fronti�re, � partir de laquelle des messages d'avertissement sont envoy�s pour informer du d�passement de quota lorsqu'il survient.

Limite dure (Hard Limit)
La limite dure ne fonctionne que lorsque le d�lais est configur�. Cel� d�finit la limite absolue de l'utilisation disque, puisque l'utilisateur ne peut d�passer la limite dure.

D�lais (Grace Period) Lanc� par la commande edquota -t, le d�lais est une limite de temps avant que la limite douce soit renforc�e sur un syst�me de fichiers ou les quotas sont activ�s. Les unit�s de temps "sec(onds), min(utes), hour(s), day(s), week(s), and month(s)" peuvent �tre utilis�es. Voici ce que nous voyons avec la commande edquota -t :

Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/dev/hda2: block grace period: 0 days, file grace period: 0 days

Changer la partie "0 days" pour une dur�e qui vous semble r�sonnable. J'ai choisi personnellement "7 days" (ou une semaine).

4. Diverses commandes pour les quotas

4.1 Quotacheck

Quotacheck est utilis� pour v�rifier le syst�me de fichier et les utilisations disque pour mettre le plus � possible le fichier enregistrement "quota.user" Je recommande de lancer quotacheck au boot du syst�me, ou r�guli�rement avec cron (par exemple chaque semaine ?).

4.2 Repquota

Repquota affiche un r�sum� des quotas pour le syst�me de fichiers.
Voici une sortie type de repquota :

# repquota -a
                        Block limits               File limits
User            used    soft    hard  grace    used  soft  hard  grace
root      --  175419       0       0          14679     0     0
bin       --   18000       0       0            735     0     0
uucp      --     729       0       0             23     0     0
man       --      57       0       0             10     0     0
user1     --   13046   15360   19200            806  1500  2250
user2     --    2838    5120    6400            377  1000  1500

4.3 Quotaon et Quotaoff

Quotaon est utiliser pour activer la gestion des quotas; et quotaoff pour le terminer. Les fichiers sont en fait similaires. Ils sont ex�cut�s au d�marrage et � l'arr�t du syst�me.