  Quota Mini-Howto
  par Albert M.C. Tam (bertie@scn.org)
  Version du 08 Aout 1997

  (Adaptation francaise 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.

  PPrreeaammbbuullee   ::    Ce   document   a  ete  ecrit  par  Albert  M.C.  Tam
  (bertie@scn.org).  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
  bertie@scn.org  si  vous  trouvez  une  erreur,  ou qu'une information
  manquante. J'aprecierai.

  11..  LLeess QQuuoottaass,, qquu''eesstt--ccee qquuee cc''eesstt ??

  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.

  11..11..  EEttaatt aaccttuueell ddeess qquuoottaass ssoouuss LLiinnuuxx

  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
  eexxtt22.

  11..22..  QQuuee ffaauutt--iill ppoouurr uuttiilliisseerr lleess QQuuoottaass ssuurr LLiinnuuxx

  11..22..11..  NNooyyaauu

  Les    sources    du    noyau     2.x     sont     disponibles     sur
  http://sunsite.unc.edu/pub/Linux/kernel/v2.0    ou   plus   pres   sur
  ffttpp..lliipp66..ffrr .

  11..22..22..  PPrrooggrraammmmeess ppoouurr lleess qquuoottaass

  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

  22..  PPaarrttiiee II :: LLaa ccoonnffiigguurraattiioonn

  22..11..  RReeccoonnffiigguurreerr vvoottrree nnooyyaauu

  Reconfigurez votre noyau et ajoutez le support des quotas en repondant
  'y' a :

       Quota support (CONFIG_QUOTA) n y

  22..22..  CCoommppiilleerr eett iinnssttaalllleerr lleess pprrooggrraammmmeess ddeess qquuoottaass

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

  22..33..  lleess aaccttiivveerr lloorrss dduu bboooott..  MMooddiiffiieerr lleess ssccrriippttss  iinniitt  ddee  vvoottrree
  ssyysstteemmee ppoouurr vveerriiffiieerr lleess qquuoottaass eett

  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 ttoouujjoouurrss  activer  les  quotas  aapprreess  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.

  22..44..  MMooddiiffiieerr //eettcc//ffssttaabb

  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

  22..55..    CCrreeeerr   lleess   eennrreeggiissttrreemmeennttss   ddeess   qquuoottaass  ""qquuoottaa..uusseerr""  eett
  ""qquuoottaa..ggrroouupp""

  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

  22..66..  RReebbooootteerr

  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.

  33..  PPaarrttiiee IIII :: AAttttrriibbuueerr lleess qquuoottaass aauuxx uuttiilliissaatteeuurrss eett aauuxx  ggrroouuppeess..

  Cette  operation est assuree par la commande eeddqquuoottaa (man edquota pour
  les details).

  J'utilise generalement qquuoottaacchheekk avec les flags --aavvuugg 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.

  33..11..  AAttttrriibbuueerr lleess qquuoottaass ppoouurr uunn uuttiilliissaatteeuurr ppaarrttiiccuulliieerr

  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)

  bblloocckk uuttiilliisseess est le nombre total de blocks (en Ko) que l'utilisateur
  a deja consomme sur la partition.

  ii--nnooeeuuddss  uuttiilliisseess  est  le nombre total de fichiers que l'utilisateur
  possede sur la partition.

  33..22..  AAttttrriibbuueerr lleess qquuoottaass ssuurr uunn ggrroouuppee ppaarrttiiccuulliieerr

  Maintenant, il y a un groupe _g_a_m_e_s sur mon systeme. eeddqquuoottaa  --gg  ggaammeess
  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)

  33..33..   AAttttrriibbuueerr  lleess  qquuoottaass  ppoouurr pplluussiieeuurrss uuttiilliiaatteeuurrss aavveecc llaa mmeemmee
  vvaalleeuurr

  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 ccsshh, 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).

  LLiimmiittee ddoouuccee ((SSoofftt LLiimmiitt))
  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.

  LLiimmiittee dduurree ((HHaarrdd LLiimmiitt))
  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.

  DDeellaaiiss  ((GGrraaccee PPeerriioodd)) Lance par la commande eeddqquuoottaa --tt, 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 eeddqquuoottaa --t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 duree qui vous semble  resonnable.
  J'ai choisi personnellement "7 days" (ou une semaine).

  44..  DDiivveerrsseess ccoommmmaannddeess ppoouurr lleess qquuoottaass

  44..11..  QQuuoottaacchheecckk

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

  44..22..  RReeppqquuoottaa

  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

  44..33..  QQuuoottaaoonn eett QQuuoottaaooffff

  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.

