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.
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.
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.
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 .
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
Reconfigurez votre noyau et ajoutez le support des quotas en r�pondant 'y' � :
Quota support (CONFIG_QUOTA) [n] y
Les sources des programmes des quotas sont disponibles sur ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
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.
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
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
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.
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.
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.
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)
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).
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 ?).
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
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.