<!--  Traduction : Antoine LEVAVASSEUR    -->
<!--  levavass@efrei.fr                   -->
<!--  Noisy le Sec, le 14 Octobre 1997 -->

<!doctype linuxdoc system>

<article>

<title>Quota Mini-Howto
<author>par Albert M.C. Tam (bertie@scn.org)
<date>Version du 08 Août 1997

<abstract>
(Adaptation française par Antoine Levavasseur <tt>levavass@efrei.fr</tt>, 
le 14 Octobre 1997).
L'objectif de ce mini-howto est d'expliquer comment mettre en place et 
utiliser les quotas sous linux.
</abstract>

<p>
<newline>
<bf/Dernière Modification/ : Fri Aug 8 09:45:05 HKT 1997
<p>

<bf/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.
<p>

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.
<p>

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.

<sect>Les Quotas, qu'est-ce que c'est ?
<p>
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.

<p>
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.

<p>
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.

<sect1>Etat actuel des quotas sous Linux
<p>
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.
<p>

Actuellement les quotas ne fonctionnent qu'avec le système de fichier <bf/ext2/.

<sect1>Que faut-il pour utiliser les Quotas sur Linux

<sect2>Noyau
<p>
Les sources du noyau 2.x sont disponibles sur
<htmlurl url="http://sunsite.unc.edu/pub/Linux/kernel/v2.0"
         name="http://sunsite.unc.edu/pub/Linux/kernel/v2.0">
ou plus près sur <bf/ftp.lip6.fr/ . 

<sect2>Programmes pour les quotas
<p>
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
<htmlurl 
   url="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz"
   name="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz">

<sect>Partie I : La configuration

<sect1>Reconfigurer votre noyau
<p>
Reconfigurez votre noyau et ajoutez le support des quotas en répondant 'y' à :
<quote>
    Quota support (CONFIG_QUOTA) [n] y
</quote>

<sect1>Compiler et installer les programmes des quotas
<p>
Les sources des programmes des quotas sont disponibles sur 
<htmlurl 
   url="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz"
   name="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz">

<sect1>Modifier les scripts init de votre système pour vérifier les quotas et
 les activer lors du boot.

<p>
Voici un exemple :
<tscreen><verb>
# 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
</verb></tscreen>

<p>
La règle d'or est de <bf/toujours/ activer les quotas <bf/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.

<sect1>Modifier /etc/fstab
<p>
Les partitions sur lesquelles vous n'avez pas encore activé les quotas
ressemblant normalement à :
<tscreen><verb>
/dev/hda1       /       ext2    defaults        1       1
/dev/hda2       /usr    ext2    defaults        1       1
</verb></tscreen>

<p>
Pour activer le support des quotas utilisateur pour un système de fichiers,
ajoutez "usrquota" dans le quatrième champ contenant le mot "defaults"
(<tt/man fstab/ pour avoir des détails).

<tscreen><verb>
/dev/hda1       /       ext2    defaults                1       1
/dev/hda2       /usr    ext2    defaults,usrquota       1       1
</verb></tscreen>

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

<tscreen><verb>
/dev/hda1       /       ext2    defaults                1       1
/dev/hda2       /usr    ext2    defaults,grpquota       1       1
</verb></tscreen>

<p>
Vous avez besoin à la fois du support des quotas pour les groupes et les 
utilisateurs ?

<tscreen><verb>
/dev/hda1       /       ext2    defaults                        1       1
/dev/hda2       /usr    ext2    defaults,usrquota,grpquota      1       1
</verb></tscreen>

<sect1>Créer les enregistrements des quotas "quota.user" et "quota.group"
<p>
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.

<p>
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 :

<tscreen><verb>
touch /partition/quota.user
touch /partition/quota.group
chmod 600 /partition/quota.user
chmod 600 /partition/quota.group
</verb></tscreen>

<sect1>Rebooter
<p>
Maintenant rebooter votre système pour que les changements que vous avez fait
prennent effet.

<p>
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.


<sect>Partie II : Attribuer les quotas aux utilisateurs et aux groupes.
<p>
Cette opération est assurée par la commande <bf/edquota/ (<tt/man edquota/
pour les détails).

<p>
J'utilise généralement <bf/quotachek/ avec les flags <bf/-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.

<sect1>Attribuer les quotas pour un utilisateur particulier
<p>
Voici un exemple. J'ai un utilisateur avec le loggin <em/bob/ sur mon système.
La commande <tt>edquota -u bob</tt> me lance vi (ou l'éditeur spécifié dans
la variable d'environnement &dollar;EDITOR) pour éditer les quotas pour 
l'utilisateur <em/bob/ sur chacune des partitions où le quota est activé.

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

<bf>block utilisés</bf> est le nombre total de blocks (en Ko) que 
l'utilisateur a déjà consommé sur la partition.

<bf>i-noeuds utilisés</bf> est le nombre total de fichiers que l'utilisateur
possède sur la partition.

<sect1>Attribuer les quotas sur un groupe particulier
<p>
Maintenant, il y a un groupe <em/games/ sur mon système. <bf/edquota -g games/
lance une nouvelle fois l'éditeur vi pour éditer le groupe <em/games/ :

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

<sect1>Attribuer les quotas pour plusieurs utiliateurs avec la même valeur
<p>
Pour attribuer rapidement les quotas pour, par exemple 100 utilisateurs, sur
mon système avec la même valeur que pour l'utilisateur <em/bob/, je vais 
d'abord éditer les quotas de <em/bob/ à la main, et ensuite exécuter :
<tscreen><verb>
edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`
</verb></tscreen>

<p>
en partant du principe que vous utilisez <bf/csh/, et que les UID de 
vos utilisateurs commencent à partir de 500.

<p>
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).

<bf/Limite douce (Soft Limit)/<newline>
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.
<p>

<bf/Limite dure (Hard Limit)/<newline>
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.
<p>

<bf/Délais (Grace Period)/
Lancé par la commande <bf/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 <bf/edquota -t/ :
<tscreen><verb>
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
</verb></tscreen>

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

<sect>Diverses commandes pour les quotas
<sect1>Quotacheck
<p>
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 ?).

<sect1>Repquota
<p>
Repquota affiche un résumé des quotas pour le système de fichiers.<newline>
Voici une sortie type de repquota :
<tscreen><verb>
# 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
</verb></tscreen>

<sect1>Quotaon et Quotaoff
<p>
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.

</article>
Heberge par Ikoula