  Quota mini-HOWTO
  Ralf van Dooren r.vdooren@snow.nl
  v0.5, 2003-08-09


  Preambolo: Questo documento  stato scritto da Ralf van Dooren
  (r.vdooren@snow.nl). Il testo originale  di Albert M.C. Tam, che
  ringrazio molto per la stesura iniziale di questo mini-HOWTO. Questo
  documento  sotto i termini della licenza GNU Free Documentation
  Licence. Traduzione a cura di Alessio Rolleri
  (aroller(at)libero.it) e revisione a cura di Beatrice Torracca.

  Permission to use, copy, distribute this document for non-commercial
  purposes is hereby granted, provided that the author's / editor's name
  and this notice appear in all copies and/or supporting documents; that
  this document is not modified. This document is distributed in hope
  that it will be useful, but WITHOUT ANY WARRANTY, either expressed or
  implied. While every effort has been taken to ensure the accuracy of
  the information documented herein, the author / editor / maintainer
  assumes NO RESPONSIBILITY for errors, or for damages results for the
  use of the information documented herein.

  Questo documento descrive come abilitare le quote d'uso del disco su
  un sistema Linux, assegnarle agli utenti e ai gruppi e l'uso dei vari
  comandi.   rivolto agli utenti che hanno installato il kernel 2.x (
  stato recentemente testato sul kernel 2.4.21).

  Se trovate un errore o se qualche informazione  mancante, inviate
  commenti e feedback a r.vdooren@snow.nl. Saranno apprezzati.


  11..  CCoossaa ssoonnoo llee qquuoottee??

  11..11..  AA ccoossaa sseerrvvoonnoo llee qquuoottee??

  Le quote permettono di specificare dei limiti in due aspetti dello
  spazio sul disco: il numero di inode che pu avere un utente o un
  gruppo di utenti e il numero di blocchi sul disco che possono essere
  allocati ad un utente o a un gruppo di utenti.


  L'idea che sta dietro a ci consiste nel fatto che gli utenti siano
  costretti a rimanere sotto a un limite di utilizzo del disco,
  togliendo loro la possibilit di consumare spazio illimitato su un
  sistema. Le quote sono gestite per utente e per filesystem. Se c' pi
  di un filesystem nel quale  previsto che un utente possa creare file,
  allora la quota d'uso deve essere impostata per ogni filesystem
  separatamente. Sono disponibili diversi strumenti per amministrare e
  automatizzare le regole per le quote sul proprio sistema.


  11..22..  SSttaattoo aattttuuaallee ddeellllee qquuoottee ssuu LLiinnuuxx

  Attualmente, ci sono grandi cambiamenti nel modo in cui le quote
  funzionano.  Esistono due impostazioni differenti. Gli strumenti fanno
  lo stesso lavoro, ma ci sono differenze nei file usati. Questo
  documento descrive l'installazione e il funzionamento del nuovo
  metodo. Siccome esso non  presente nei normali sorgenti del kernel, 
  necessario usare delle patch. Verr descritta questa operazione e
  l'installazione del pacchetto linuxquota. Se nel proprio sistema  gi
  installato il software per le quote,  possibile che non si debba
  installare la patch e il pacchetto. Potete scrivermi se ci sono
  domande a proposito. In una prossima versione del documento tenter di
  includere una panoramica delle distribuzioni di Linux e le loro
  implicazioni.

  22..  RReeqquuiissiittii ppeerr llee qquuoottee


  22..11..  KKeerrnneell

  I sorgenti del kernel 2.x sono disponibili qui: http://www.kernel.org
  <http://www.kernel.org/>. Per risparmiare banda, si prega di usare un
  mirror vicino alla propria localit. Se si possiede una versione
  recente di tar si pu scaricare il file compresso .bz2.

  Scompattare il kernel:

  ______________________________________________________________________
  cd /usr/src
  tar jxvf /percorso/di/linux-2.4.21-tar.bz2      - per file del kernel bzip2 -
  tar zxvf /percorso/di/linux-2.4.21-tar.gz       - per file del kernel gzip -
  ln -s /usr/src/linux-2.4.21 /usr/src/linux
  ______________________________________________________________________



  22..22..  SSooffttwwaarree


  A seconda della propria distribuzione,  possibile che siano presenti
  nel sistema i software per le quote. La versione pi recente 
  disponibile attraverso SourceForge ed  in sviluppo. Si pu
  raggiungere il sito dello sviluppo del software delle quote a
  http://www.sourceforge.net/projects/linuxquota
  <http://www.sourceforge.net/project/linuxquota>.


  33..  IImmppoossttaazziioonnee ddeellllee qquuoottee:: iinnssttaallllaazziioonnee ee ccoonnffiigguurraazziioonnee

  33..11..  AApppplliiccaarree llaa ppaattcchh aall kkeerrnneell

  Scaricare la patch per il proprio kernel qui:

  ftp://atrey.karlin.mff.cuni.cz/pub/local/jack/quota/
  <ftp://atrey.karlin.mff.cuni.cz/pub/local/jack/quota/>.


  Scegliere la propria versione del kernel e scaricare la(le) patch.
  Applicarla con il comando "patch". Se c' pi di una patch per la
  propria versione del kernel, assicurarsi di applicare le patch
  nell'ordine corretto.

  Si pu usare questo script (si assume che le patch scaricate siano in
  /tmp/quota/ e che il kernel sia stato scompattato in /usr/src/linux):


  ______________________________________________________________________
  #!/bin/sh

  gunzip /tmp/quota/*.gz
  cd /usr/src/linux
  COUNT=`ls -1 /tmp/quota/*.diff | wc -l`
  for I in `seq 1 $COUNT`
  do
     patch -p1 < /tmp/quota/quota-2.4.21-$I-*.diff
  done
  ______________________________________________________________________



  33..22..  RRiiccoonnffiigguurraarree iill kkeerrnneell


  Riconfigurare il kernel e aggiungere il supporto per le quote.

  Attraverso 'make menuconfig' o 'make xconfig' si possono trovare le
  opzioni per il supporto delle quote nel menu Filesystems. Se
  necessario si possono specificare ulteriori opzioni come il supporto
  per gli UID a 32 bit.

  Salvare la configurazione e compilare il kernel. Assicurarsi che verr
  utilizzato il nuovo kernel al riavvio del sistema.


  33..33..  CCoommppiillaarree ee iinnssttaallllaarree iill ssooffttwwaarree ppeerr llee qquuoottee

  Per usare tutte le caratteristiche del nuovo sistema delle quote,
  probabilmente sar necessario scaricare il nuovo pacchetto. Scaricare
  il nuovo software per le quote attraverso l'URL suddetta.

  Quando  stato scaricato, avviare i comandi:

  ______________________________________________________________________
  $ gzip -dc <file scaricato> | tar xvf
  $ cd quota-tools  (o qualunque directory in cui sia stato messo il software)
  $ ./configure
  $ make
  $ su
  # make install
  ______________________________________________________________________



  33..44..  MMooddiiffiiccaarree lloo ssccrriipptt iinniitt ddeell pprroopprriioo ssiisstteemmaa ppeerr ccoonnttrroollllaarree llee
  qquuoottee ee aabbiilliittaarree llee qquuoottee aallll''aavvvviioo


  Ecco un esempio:

  ______________________________________________________________________
  # Controllo e abilitazione quote.
  if [ -x /usr/sbin/quotacheck ]
          then
                 echo "Controllo quote. Potrebbe richiedere parecchio tempo."
                 /usr/sbin/quotacheck -avug
                 echo " Fatto."
          fi
           if [ -x /usr/sbin/quotaon ]
          then
                  echo "Abilitazione quote."
                  /usr/sbin/quotaon -avug
          fi
  ______________________________________________________________________



  La regola d'oro consiste nell'abilitare le quote dopo che i propri
  filesystem in /etc/fstab siano stati montati, altrimenti non
  funzioneranno.  Si raccomanda di abilitare le quote subito dopo il
  montaggio dei filesystem da parte dello script init.



  33..55..  MMooddiiffiiccaarree //eettcc//ffssttaabb


  Le partizioni che non hanno le quote attivate normalmente appaiono
  cos:

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



  Per abilitare il supporto per le quote in un filesystem, aggiungere
  "usrquota" al quarto campo contenente la parola "defaults" (man fstab
  per i dettagli).

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



   necessario sostituire "usrquota" con "grpquota" per avere il
  supporto delle quote per i gruppi su un filesystem.

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



  Sono necessarie le quote sia per gli utenti che per i gruppi su un
  filesystem?

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



  33..66..  AAttttiivvaarree iill ssiisstteemmaa ddii qquuoottee

  Per attivare il software bisogna riavviare il sistema per rendere
  effettivi i cambiamenti fatti. Il nuovo kernel con il supporto per le
  quote sar caricato e lo script di avvio appena creato sar eseguito.
  Al primo avvio, quotacheck generer i file appropriati per mantenere
  il database delle quote.


  33..77..  AAggggiiuunnggeerree qquuoottaacchheecckk aa ccrroonnttaabb

  Nonostante le quote funzionino con dei controlli periodici, a volte
  pu essere utile avviare quotacheck periodicamente, ad esempio
  settimanalmente. Aggiungere la seguente linea al file crontab di root:

  ______________________________________________________________________
  0 3 * * 0 /sbin/quotacheck -avug
  ______________________________________________________________________



  44..  IImmppoossttaazziioonnee ddeellllee qquuoottee:: ssttrruummeennttii


  Questa operazione verr effettuata con il comando edquota (man edquota
  per i dettagli).


  44..11..  AAsssseeggnnaarree llaa qquuoottaa aadd uunn ppaarrttiiccoollaarree uutteennttee


  Ecco un esempio. Si ha un utente con username bob sul proprio sistema.
  Il comando "edquota -u bob" apre vi (o l'editor specificato nella
  propria variabile d'ambiente $EDITOR) per modificare la quota
  dell'utente bob su ogni partizione dove sono abilitate le quote:

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



  "blocks in use"  il numero totale di blocchi (in kilobyte) che
  l'utente ha consumato sulla partizione.

  "inodes in use"  il numero totale di inode che l'utente ha consumato
  sulla partizione.

  44..22..  AAsssseeggnnaarree llee qquuoottee ppeerr uunn ppaarrttiiccoollaarree ggrruuppppoo


  Ora si consideri un gruppo "games" sul proprio sistema.  "edquota -g
  games" apre vi per modificare le quote di questo gruppo:

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



  44..33..  AAsssseeggnnaarree aadd uunn iinnssiieemmee ddii uutteennttii llee sstteessssee qquuoottee


  Per impostare a 1000 utenti (per esempio) lo stesso valore di quota
  dell'utente bob sul proprio sistema, si dovr prima impostare il
  valore per bob manualmente, e in seguito eseguire:

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



  presumendo l'uso di csh e l'assegnamento dell'UID utente partendo da
  500.

  In aggiunta a edquota, ci sono 3 termini che devono essere noti: Soft
  Limit, Hard Limit e Grace Period

  44..44..  SSoofftt LLiimmiitt



  _Soft Limit_ indica l'ammontare massimo d'uso del disco di cui un
  utente dispone su una partizione. Quando viene combinato con Grace
  Period, esso agisce come una linea di confine, emettendo un
  avvertimento quando un utente la oltrepassa.


  44..55..  HHaarrdd LLiimmiitt


  Hard Limit funziona solo quando  impostato Grace Period. Specifica il
  limite assoluto d'uso del disco, che non pu essere violato da un
  utente.

  44..66..  GGrraaccee PPeerriioodd


  Avviato con il comando "edquota -t", il Grace Period  il limite di
  tempo disponibile prima che venga fatto rispettare il Soft Limit, in
  un filesystem con quote. Possono essere usate unit di tempo di
  secondi, minuti, ore, giorni, settimane e mesi. Questo  quanto appare
  con il comando "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
  ______________________________________________________________________



  Cambiare la parte che indica "0 days" con qualunque intervallo di
  tempo venga ritenuto ragionevole, personalmente sceglierei 7 giorni (o
  una settimana).


  55..  CCoommaannddii VVaarrii


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


  Quotacheck  usato per controllare un filesystem per l'uso del disco e
  aggiornare il file "aquota.user" alla situazione recente. Raccomando
  di avviare quotacheck all'avvio del sistema e periodicamente
  attraverso cronjob (ogni settimana, ad esempio?).

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


  Repquota fornisce un riepilogo delle informazioni sulle quote per un
  filesystem. Ecco un esempio di output:

  ______________________________________________________________________
  # 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
  ______________________________________________________________________



  55..33..  QQuuoottaaoonn ee QQuuoottaaooffff


  Quotaon  usato per avviare il calcolo delle quote; quotaoff per
  terminarlo. Entrambi i file sono simili e vengono eseguiti all'avvio e
  allo spegnimento del sistema.



