Quota Mini-Howto
par Albert M.C. Tam (
[email protected])
Version du 08 Aout 1997
(Adaptation francaise par Antoine Levavasseur
[email protected], le 14
Octobre 1997). L'objectif de ce mini-howto est d'expliquer comment
mettre en place et utiliser les quotas sous linux.
PPrreeaammbbuullee :: Ce document a ete ecrit par Albert M.C. Tam
(
[email protected]). La possibilite d'utiliser, copier, distribuer ce
document pour une utilisation non-commerciale est permise, a partir du
moment ou la presente remarque et les noms de l'auteur et de
l'editeur apparaissent sur toutes les copies et/ou supports du
document; et que le document n'est pas modifie. Ce document est
diffuse en esperant qu'il sera utile, mais sans AUCUNE GARANTIE,
exprimee ou implicite. Bien que tous les efforts ait ete faits pour
s'assurer de l'exactitude des informations du present document,
l'auteur / editeur / mainteneur n'assume AUCUNE RESPONSABILITE pour
des erreurs, ou des domages resultant de l'utilisation des
informations du present document.
Ce document decrit comment activer un quota sur le systeme 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 destine aux utilisateurs utilisant un noyau 2.x (teste
recemment sur RedHat 4.1 avec un noyau 2.0.27). Les utilisateurs qui
utilisent des noyaux plus vieux doivent se mettre a jour avec un noyau
plus recent pour pouvoir utiliser les quotas.
N'hesitez pas a envoyer vos commentaires et point-de-vue a
[email protected] si vous trouvez une erreur, ou qu'une information
manquante. J'aprecierai.
11.. LLeess QQuuoottaass,, qquu''eesstt--ccee qquuee cc''eesstt ??
Les quotas permettent de specifier les limites sur deux aspects du
stockage sur disque : le nombre d'i-noeuds qu'un utilisateur ou un
groupe peux posseder; et le nombre de blocks disques qui peuvent etres
alloues a un utilisateur ou un groupe d'utilisateurs.
L'idee des quotas, c'est que les utilisateurs sont obliges de rester
sous leur limite de consomation de disque, perdant leur possiblite de
saturer la totalite de l'espace disque d'un systeme.
Les quotas sont supportes sur une base par utilisateur et par systeme
de fichier. Si il y a plus d'un systeme de fichiers ou un utilisateur
qui est cense creer des fichiers, alors les quotas doivent etre
configures separemment sur chaque systeme de fichier.
11..11.. EEttaatt aaccttuueell ddeess qquuoottaass ssoouuss LLiinnuuxx
Le support des quotas a ete integre 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 systeme ne supporte pas les quotas, je
recommande chaudement une mise a jour.
Actuellement les quotas ne fonctionnent qu'avec le systeme de fichier
eexxtt22.
11..22.. QQuuee ffaauutt--iill ppoouurr uuttiilliisseerr lleess QQuuoottaass ssuurr LLiinnuuxx
11..22..11.. NNooyyaauu
Les sources du noyau 2.x sont disponibles sur
http://sunsite.unc.edu/pub/Linux/kernel/v2.0 ou plus pres sur
ffttpp..lliipp66..ffrr .
11..22..22.. PPrrooggrraammmmeess ppoouurr lleess qquuoottaass
Selon votre distribution Linux, vous avez, ou devez avoir, ou ne pas
avoir les programmes des quotas installes sur votre systeme. Si vous
ne les avez pas, alors telechargez les sources des programmes pour les
quotas sur
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
22.. PPaarrttiiee II :: LLaa ccoonnffiigguurraattiioonn
22..11.. RReeccoonnffiigguurreerr vvoottrree nnooyyaauu
Reconfigurez votre noyau et ajoutez le support des quotas en repondant
'y' a :
Quota support (CONFIG_QUOTA) n y
22..22.. CCoommppiilleerr eett iinnssttaalllleerr lleess pprrooggrraammmmeess ddeess qquuoottaass
Les sources des programmes des quotas sont disponibles sur
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
22..33.. lleess aaccttiivveerr lloorrss dduu bboooott.. MMooddiiffiieerr lleess ssccrriippttss iinniitt ddee vvoottrree
ssyysstteemmee ppoouurr vveerriiffiieerr lleess qquuoottaass eett
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 regle d'or est de ttoouujjoouurrss activer les quotas aapprreess que votre
systeme de fichier ait ete monte avec /etc/fstab, sinon les quotas ne
fonctionneront pas. Je recommande d'activer les quotas a la fin de
votre script init, ou, si vous preferez, juste apres la partie ou le
script init monte les systemes de fichiers.
22..44.. MMooddiiffiieerr //eettcc//ffssttaabb
Les partitions sur lesquelles vous n'avez pas encore active les quotas
ressemblant normalement a :
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /usr ext2 defaults 1 1
Pour activer le support des quotas utilisateur pour un systeme de
fichiers, ajoutez "usrquota" dans le quatrieme champ contenant le mot
"defaults" (man fstab pour avoir des details).
/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 syteme de fichiers.
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /usr ext2 defaults,grpquota 1 1
Vous avez besoin a 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
22..55.. CCrreeeerr lleess eennrreeggiissttrreemmeennttss ddeess qquuoottaass ""qquuoottaa..uusseerr"" eett
""qquuoottaa..ggrroouupp""
Les deux fichiers d'enregistrement des quotas, quota.user et
quota.group, doivent etre possedes par root, et avec les permissions
lecture_ecriture pour root et personne d'autre.
Logguez-vous en root. Allez sur la partition root ou vous voulez
activer les quota, et creez 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
22..66.. RReebbooootteerr
Maintenant rebooter votre systeme 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
etapes 4, 5 et 6.
33.. PPaarrttiiee IIII :: AAttttrriibbuueerr lleess qquuoottaass aauuxx uuttiilliissaatteeuurrss eett aauuxx ggrroouuppeess..
Cette operation est assuree par la commande eeddqquuoottaa (man edquota pour
les details).
J'utilise generalement qquuoottaacchheekk avec les flags --aavvuugg pour avoir les
fichiers les plus a jour possible avant d'editer les quotas. C'est
juste une habitude personnelle, mais pas une etape indispensable.
33..11.. AAttttrriibbuueerr lleess qquuoottaass ppoouurr uunn uuttiilliissaatteeuurr ppaarrttiiccuulliieerr
Voici un exemple. J'ai un utilisateur avec le loggin _b_o_b sur mon
systeme. La commande edquota -u bob me lance vi (ou l'editeur
specifie dans la variable d'environnement $EDITOR) pour editer les
quotas pour l'utilisateur _b_o_b sur chacune des partitions ou le quota
est active.
Quotas for user bob:
/dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500)
inodes in use: 356, limits (soft = 1000, hard = 1500)
bblloocckk uuttiilliisseess est le nombre total de blocks (en Ko) que l'utilisateur
a deja consomme sur la partition.
ii--nnooeeuuddss uuttiilliisseess est le nombre total de fichiers que l'utilisateur
possede sur la partition.
33..22.. AAttttrriibbuueerr lleess qquuoottaass ssuurr uunn ggrroouuppee ppaarrttiiccuulliieerr
Maintenant, il y a un groupe _g_a_m_e_s sur mon systeme. eeddqquuoottaa --gg ggaammeess
lance une nouvelle fois l'editeur vi pour editer le groupe _g_a_m_e_s :
Quotas for group games:
/dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000)
inodes in use: 1454, limits (soft = 3000, hard = 4000)
33..33.. AAttttrriibbuueerr lleess qquuoottaass ppoouurr pplluussiieeuurrss uuttiilliiaatteeuurrss aavveecc llaa mmeemmee
vvaalleeuurr
Pour attribuer rapidement les quotas pour, par exemple 100
utilisateurs, sur mon systeme avec la meme valeur que pour
l'utilisateur _b_o_b, je vais d'abord editer les quotas de _b_o_b a la main,
et ensuite executer :
edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`
en partant du principe que vous utilisez ccsshh, et que les UID de vos
utilisateurs commencent a 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
delais (Grace Period).
LLiimmiittee ddoouuccee ((SSoofftt LLiimmiitt))
La limite douce indique la quantite maximale qu'un utilisteur peut
utiliser sur une partition. En combinaison avec le delais (Grace
Period), il agit d'une frontiere, a partir de laquelle des messages
d'avertissement sont envoyes pour informer du depassement de quota
lorsqu'il survient.
LLiimmiittee dduurree ((HHaarrdd LLiimmiitt))
La limite dure ne fonctionne que lorsque le delais est configure. Cela
definit la limite absolue de l'utilisation disque, puisque
l'utilisateur ne peut depasser la limite dure.
DDeellaaiiss ((GGrraaccee PPeerriioodd)) Lance par la commande eeddqquuoottaa --tt, le delais est
une limite de temps avant que la limite douce soit renforcee sur un
systeme de fichiers ou les quotas sont actives. Les unites de temps
"sec(onds), min(utes), hour(s), day(s), week(s), and month(s)" peuvent
etre utilisees. Voici ce que nous voyons avec la commande eeddqquuoottaa --tt :
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 duree qui vous semble resonnable.
J'ai choisi personnellement "7 days" (ou une semaine).
44.. DDiivveerrsseess ccoommmmaannddeess ppoouurr lleess qquuoottaass
44..11.. QQuuoottaacchheecckk
Quotacheck est utilise pour verifier le systeme de fichier et les
utilisations disque pour mettre le plus a possible le fichier
enregistrement "quota.user" Je recommande de lancer quotacheck au boot
du systeme, ou regulierement avec cron (par exemple chaque semaine ?).
44..22.. RReeppqquuoottaa
Repquota affiche un resume des quotas pour le systeme 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
44..33.. QQuuoottaaoonn eett QQuuoottaaooffff
Quotaon est utiliser pour activer la gestion des quotas; et quotaoff
pour le terminer. Les fichiers sont en fait similaires. Ils sont
executes au demarrage et a l'arret du systeme.