  Linux Quota mini-HOWTO
  Albert M.C. Tam (bertie@scn.org) und Thomas Bader
  (thomasb@trash.net)
  v1.6-2, 16. April 2000

  Diese HOWTO beschreibt, wie man Quota auf einem Linuxsystem einrichten
  und konfigurieren muss.


  1.  Einfhrung

  Das englische Quota mini-HOWTO wurde von Albert M.C. Tam geschrieben.
  Dieses HOWTO wurde von mir ins Deutsche bersetzt und erweitert.


  1.1.  Neue Versionen dieses Dokuments

  Die jeweils neuste Version dieser HOWTO ist auf dem WWW Server des
  Deutschen Linux HOWTO Projekts unter folgender Adresse zu finden:


       http://www.tu-harburg.de/dlhp/


  Hier kann man die jeweils aktuelle Version auch gleich online lesen.


  1.2.  Feedback

  Kommentare, Kritik, Hinweise auf Fehler und vor allem aktive Beitrge
  zu diesem Dokument sind jederzeit willkommen. Bitte senden Sie
  Hinweise oder Kommentare zu dieser deutschen Version an mich.  Mein E-
  Mail-Adresse ist:


       thomasb@trash.net




  1.3.  Copyright

  Dieses Dokument ist urheberrechtlich geschtzt. Das Copyright fr die
  englische Quota mini-HOWTO, auf der dieses Dokument basiert, liegt bei
  Albert M.C. Tam. Das Copyright fr die deutsche Version liegt bei
  Thomas Bader.

  Das Dokument darf gem der GNU General Public License verbreitet
  werden.  Insbesondere bedeutet dieses, da der Text sowohl ber
  elektronische wie auch physikalische Medien ohne die Zahlung von
  Lizenzgebhren verbreitet werden darf, solange dieser Copyright-
  Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt
  und ausdrcklich erwnscht. Bei einer Publikation in Papierform ist
  das Deutsche Linux HOWTO Projekt hierber zu informieren.


  1.4.  Danksagungen

  Bedanken mchte ich mich bei Thomas de Klein (deKlein@mcis.de), der
  den Abschnitt ``nderungen wirksam machen'' beigesteuert hat.


  2.  Allgemeines ber Quota

  2.1.  Was sind Quota?

  Benutzer, die an einem System arbeiten und dort ein persnliches
  Verzeichnis besitzen, neigen dazu, dass sie vielzuviel in dieses
  Verzeichnis speichern.  Vom hochauflsenden A4-Scan einer Seite, bis
  ber Briefe vom vorletzen Jahr, alles landet auf der Festplatte. Kein
  Wunder, dass dann nach kurzer Zeit bereits eine neue Festplatte fllig
  wird. Die Lsung dazu heisst Quota.  Mit Quota kann der
  Systemadministrator den verfgbaren Speicherplatz fr jeden Benutzer
  oder Gruppe einschrnken.


  2.2.  Wichtige Hinweise

  Quota werden zur Zeit fr jede Partition seperat berwacht. Falls ein
  Benutzer auf mehrere Partitionen Schreibrechte hat, muss man fr jede
  Partition eine einzelne Quota setzen, falls dies bentigt wird. Ob
  dies vorteilhaft ist oder nicht, darber kann man sich streiten.


  2.3.  Wo kommen Quota zum Einsatz?

  Viele Computerbesitzer wissen gar nicht, wie stark sie durch Quota
  eingeschrnkt werden. Ein gutes Beispiel dazu sind die Internet
  Provider.  Viele Kunden von Ihnen empfangen E-Mails oder haben eine
  Homepage auf dem Server des Providers gespeichert. Auf den Servern des
  Providers sind auch Quota gesetzt, z.B. wie gross das E-Mail-
  Verzeichnis der Kunden sein darf.

  Quota kommt vorallem bei Servern zum Einsatz. Denn nur dadurch lsst
  sich vermeiden, das Benutzer zuviel auf dem Server ablegen und dadurch
  die Festplatte fllen.


  2.4.  Aktueller Status von Quota

  Der Quota-Support ist Teil der Kernelgeneration 2.2. Falls Ihr System
  keinen Quota-Support bereitstellt, empfehle ich ein Upgrade. Das
  Upgrade ist auch sonst sinnvoll, da die Kernelversionen 2.2.x neue,
  sinnvolle Features enthalten.

  Zur Zeit arbeitet Quota nur mit dem Dateisystem ext2.


  2.5.  Minimale Systemanforderungen

  2.5.1.  Kernel

  Es wird mindestens ein Kernel der 2.0.x-Serie bentigt. Den Source
  kann man von


       metalab.unc.edu:/pub/Linux/kernel/v2.0


  herunterladen. Natrlich funktioniert auch die Kernelgeneration 2.2.


  2.5.2.  Quota Software

  Um Quota zu setzen, bentigt man noch die Quota Software. Bei vielen
  neueren Distrubutionen ist die Quota Software bereits enthalten. Falls
  dies nicht der Fall ist, kann man sich den Source von


       ftp.funet.fi:/pub/Linux/PEOPLE/Linus/subsystems/quota/


  herunterladen und kompilieren.


  3.  Welche Arten von Quota gibt es?

  In dem gesamten Dokument werde ich die Begriffe Softlimit (siehe
  Softlimit), Hardlimit (siehe Hardlimit) und Grace Period (siehe Grace
  Period) in ihrer englischen Form belassen, da es meines Erachtens
  keine sinvolle bersetzung dafr gibt. Wenn im Text die Rede von
  Softlimit oder Hardlimit ohne Zusatz ist, sind jeweils beide Arten,
  Block- und Inoden-Limiten gemeint.


  3.1.  Quota auf Benutzerebene

  Bei Quota auf Benutzerebene wird der Speicherplatz der einzelnen
  Benutzer berwacht. Mit dieser Methode kann man den Speicherplatz, den
  ein Benutzer fllen darf, begrenzen.

  Im weiteren Verlauf dieses Dokuments wird diese Form der Quota als
  Benutzerquota bezeichnet werden.


  3.2.  Quota auf Gruppenebene

  Bei Quota auf Gruppenebene wird der Speicherplatz der einzelnen
  Gruppen berwacht. Mit dieser Methode kann man den Speicherplatz, den
  eine Gruppe fllen darf, begrenzen.

  Im weiteren Verlauf dieses Dokuments wird diese Form der Quota als
  Gruppenquota bezeichnet werden.


  3.3.  Kombination von Quota auf Benutzerebene/Gruppenebene

  Falls auf einer Partition Quota auf Benutzer- und Gruppenebene zum
  Einsatz kommen, haben Quota auf Benutzerebene eine hhere Prioritt.
  Wenn z.B. eine Gruppe ein Limit von 5 MBytes hat, und eine Angehriger
  dieser Gruppe hat ein Limit von 20 MBytes, so darf dieser maximal
  20 MBytes fllen, auch wenn seine Gruppe nur 5 MBytes drfte.

  Im weiteren Verlauf dieses Dokuments wird diese Form der Quota als
  Benutzer- und Gruppenquota bezeichnet werden.



  3.4.

  Softlimit

  Ein Benutzer darf sein Softlimit fr eine kurze Zeit berschreiten.
  Aber eben nur eine kurze Zeit. Dieser Zeitraum, in dem er das
  Softlimit berschreiten darf, ist durch die Grace Period festgelegt.


  3.5.

  Hardlimit

  Ein Benutzer kann sein Hardlimit nicht berschreiten. Es gibt keine
  Mglichkeit fr den Benutzer, diese Limite zu umgehen.


  3.6.

  Grace Period

  Die Grace Period ist ein Zeitraum. Sobald ein Benutzer sein Softlimit
  berschreitet, beginnt die Grace Period zu ticken. Wenn sie ersteinmal
  heruntergezhlt ist, darf der betreffende Benutzer vorerst keine Daten
  mehr auf die Partition, auf der er das Softlimit berschritten hat,
  schreiben. Er darf erst wieder schreiben, wenn er sein Softlimit
  wieder unterschreitet.
  4.  Das System auf Quota vorbereiten

  4.1.  Kernelkonfiguration

  Bei der Kernelkonfiguration muss man auf die Frage



       Quota support (CONFIG_QUOTA) [n] y




  mit y antworten.


  4.2.  Kompilieren und Installieren der Quota Software

  Den Source von der Quota Software findet man unter


       ftp.funet.fi:/pub/Linux/PEOPLE/Linus/subsystems/quota/


  Eventuell ist es gnstiger, die Software von einem Mirror zu laden, da
  obengenannter Server die meiste Zeit berlastet ist.


  4.3.  Anpassen der /etc/fstab

  Auf einem System, auf dem Quota noch nie zum Einsatz kam, sieht die
  /etc/fstab normalerweise so aus:



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




  Falls man Benutzerquota einsetzen mchte, muss man die Option
  usrquota einsetzen; das Ergebnis knnte dann zum Beispiel so
  aussehen:



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




  Falls man Gruppenquota einsetzen mchte, muss man die Option
  grpquota einsetzen; das Ergebnis knnte dann zum Beispiel so
  aussehen:



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





  Falls beide obengenannten Optionen bentigt werden:



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





  4.4.

  Erstellen der Dateien quota.user und quota.group

  Auf den vorhergehenden Seiten wurde erwhnt, das es Benutzerquota und
  Gruppenquota gebe und das die Quota fr jede Partition einzeln
  berwacht werde. Aus diesen Grnden muss man fr jede zu berwachende
  Partition zwei Dateien erstellen. Auch wenn nur Benutzerquota oder
  Gruppenquota zum Einsatz kommen, muss man zwei Dateien haben.

  Diese zwei Dateien mssen im Wurzelverzeichnis der Partition sein und
  quota.user und quota.group heissen. Am besten setzt man die
  Zugriffsrechte so, das nur root die Datei lesen und schreiben darf,
  ansonsten knnten andere Benutzer die Quota ndern. Die Dateien
  erstellt man so:



       touch /partition/quota.user
       touch /partition/quota.group
       chmod 600 /partition/quota.user
       chmod 600 /partition/quota.group




  In dem Beispiel wird davon ausgegangen, dass die zu berwachende
  Partition unter /partition gemountet ist. Das man diese Operation als
  root durchfhren muss, muss wohl nicht speziell erwhnt werden.



  4.5.

  Nachtrglich eine Partition einbinden

  Falls man alle Quota schon gesetzt hat, und eine weitere Partition
  einbinden will, so mssen nur die Schritte in den Abschnitten
  ``Anpassen der /etc/fstab'' und ``Erstellen der Dateien quota.user und
  quota.group'' fr die einzubindende Partition durchgefhrt werden.
  Dann kann man die Quota wie im Abschnitt ``Setzen der Quota''
  beschrieben anpassen.


  4.6.

  nderungen wirksam machen

  Nun knnte man einfach das System rebooten, um die nderungen wirksam
  zu machen. Aber wir betreiben ja ein Linux System und da geht fast
  alles ohne neu zu booten. Um die Quotas nun tatschlich zu aktivieren,
  gengt es, einfach die entsprechende Partition unzumounten und wieder
  zu mounten. Einfacher geht dies indem man mount mit der Option -o
  remount aufruft. Beispielweise:

       mount /dev/hda2 /home -o remount





  Im Falle des Wurzelverzeichnisses ist dies sogar die einzige
  Mglichkeit, da wir / nicht einfach im laufenden Betrieb unmounten
  knnen.

  Sollen in Zukunft weitere Dateisysteme mit Quotas versehen werden,
  mssen nur noch die Schritte, die in den Abschnitten ``Erstellen der
  Dateien quota.user und quota.group'', ``Nachtrglich eine Partition
  einbinden'' sowie ``nderungen wirksam machen'' beschrieben werden,
  ausgefhrt werden.


  5.

  Setzen der Quota

  Diese Operation wird mit dem Programm edquota durchgefhrt.  Falls man
  mehr ber dieses Programm erfahren mchte, dem sei die Manual Page des
  Programms ans Herz gelegt.


  5.1.  Vorbereitung

  Zuerst muss mit



       quotacheck -avug




  der Platzverbrauch der einzelnen Benutzer erfasst werden. Je nach
  Grsse der Partition(en) und dem belegten Speicherplatz kann dies
  unterschiedlich lange dauern.


  5.2.  Benutzerquota setzen

  Angenommen, ich habe auf meinem System einen Benutzer mit dem
  Loginnamen tom. Wenn ich seine Quota setzen oder ndern mchte, rufe
  ich das Programm



       edquota -u tom




  auf. Dann lande ich in dem Editor, der in der Variable $EDITOR
  spezifiziert ist. Normalerweise ist das vi. Das knnte dann zum
  Beispiel so aussehen:








  Quotas for user tom:
  /dev/hda9: blocks in use: 8117, limits (soft=0, hard=0)
          inodes in use: 470, limits (soft=0, hard=0)
  /dev/hda2: blocks in use: 8966, limits (soft=0, hard=0)
          inodes in use: 365, limits (soft=0, hard=0)




  Hier nun jede Zeile einzeln erklrt:



       Quotas for user tom:




  Hier steht der Name des Benutzers, dessen Quota man gerade bearbeitet.



       /dev/hda9: blocks in use: 8117, limits (soft=0, hard=0)




  Hier steht die Partition, auf die sich die Angaben beziehen (in diesem
  Fall /dev/hda9) und wieviele Blcke der Benutzer schon benutzt. In den
  Klammern kann man die Softlimite und die Hardlimite fr die Anzahl
  Blcke festlegen. Ein Wert von Null bedeutet unbegrenzt.



       inodes in use: 470, limits (soft=0, hard=0)




  Diese Zeile bezieht sich auf die gleiche Partition wie die
  vorhergehende. Hier kann der Systemadministrator ablesen, wieviele
  Inoden der Benutzer schon gebraucht hat. Eine Inode entspricht einer
  Datei. In den Klammern kann man hier die Softlimite und die Hardlimite
  fr die Anzahl der Inoden festlegen. Auch hier bedeutet ein Wert von
  Null unbegrenzt.



       /dev/hda2: blocks in use: 8966, limits (soft=0, hard=0)
               inodes in use: 365, limits (soft=0, hard=0)




  Diese beiden Zeilen haben die gleiche Bedeutung wie die beiden
  anderen, beziehen sich jedoch auf eine andere Partition: in diesem
  Fall /dev/hda2.


  5.3.  Gruppenquota setzen

  Angenommen, ich mchte die Quota fr ein bestimmte Gruppe setzen.
  Falls ich dies fr die Gruppe users tun will, rufe ich



  edquota -g users




  auf. Dann erscheint wieder der Editor; das sieht dann zum Beispiel so
  aus:



       Quotas for group users:
       /dev/hda9: blocks in use: 8189, limits (soft=0, hard=0)
               inodes in use: 4452, limits (soft=0, hard=0)
       /dev/hda2: blocks in use: 955, limits (soft=0, hard=0)
               inodes in use: 366, limits (soft=0, hard=0)




  Die Optionen sind dieselben wie oben, deshalb werde ich nicht noch
  einmal daraufeingehen.


  5.4.  Quota fr mehrere Benutzer vergeben

  Hier ist eine Lsung, wie man mehreren Benutzer die gleiche Quota wie
  dem Benutzer tom geben kann. Dazu muss man aber die csh als Shell
  benutzen:



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




  Bei diesem Beispiel wird angenommen, das die UIDs von 500 an aufwrts
  vergeben worden sind. Falls dies nicht der Fall ist, muss man die Zahl
  499 in dem Beispiel anpassen.


  5.5.  Die Grace Period setzen

  Zu guter letzt kann man noch die Grace Period setzen. Dazu ruft man



       edquota -t




  auf. Dann gelangt man wieder in seinen Lieblingseditor und kriegt
  folgendes zu sehen:



       Time units may be: days, hours, minutes, or seconds
       Grace period before enforcing soft limits for users:
       /dev/hda9: block grace period: 0 day, file grace period: 0 days
       /dev/hda2: block grace period: 0 days, file grace period: 0 days





  Hier kann man die Grace Period einstellen. Auch hier muss man sie fr
  jede Partition getrennt setzen. Hinter block grace period folgt die
  Zeitspanne fr das Block-Limit, hinter file grace period die
  Zeitspanne fr die Inoden-Limite. Mgliche Werte sind Tage (days),
  Stunden (hours), Minuten (minutes) und Sekunden (seconds). Ein guter
  Wert ist sieben Tage.


  6.  Starten und beenden der Quotaberwachung

  6.1.  Manuell

  Zum Starten und Beenden der Quotaberwachung werden die Programme
  quotaon und quotaoff bentigt.

  Mit



       quotaon -avug




  wird die Quotaberwachung eingeschaltet, mit



       quotaoff -avug




  wird sie ausgeschaltet.


  6.2.

  Mit einem Skript

  Am besten wre es, wenn man die Quotaberwachung schon beim
  Systemstart einschalten knnte. Dazu kann man sich folgenden Skriptes
  bedienen:



       #! /bin/sh
       #
       #
       case "$1" in
           start)
               echo "Starte Quotaberwachung:"
               /sbin/quotaon -avug
               ;;
           stop)
               echo "Stoppe Quotaberwachung:"
               /sbin/quotaoff -avug
               ;;
           *)
               echo "Aufruf: $0 {start|stop}"
               exit 1
       esac

       exit 0


  Das Skript erwartet einen Parameter, nmlich start oder stop.  Mit
  dem Paramter start wird die Quotaberwachung gestartet, mit dem
  Parameter stop wird sie beendet.

  Falls man das Skript von Hand starten mchte, kann man es in eine
  beliebiges Verzeichnis kopieren, und dann



       chmod +x /pfad/skriptname




  durchfhren. /pfad/skriptname muss noch durch den wirklichen
  Skriptnamen und dessen Pfad ausgetauscht werden. Um es zu starten,
  wechselt man in das Verzeichnis, in dem sich das Skript befindet und
  gibt dann ./skriptname ein. Auch hier muss skriptname noch ersetzt
  werden.

  Falls man es als Init-Skript benutzen will, muss man das Skript zuerst
  nach /etc/init.d (bei SuSE-Linux: /sbin/init.d) kopieren. Am besten
  nennt man es quota. Dann fhrt man folgende Schritte durch:



       cd /etc/init.d
       chmod +x quota
       ln -sf ../rc2.d/K20quota quota
       ln -sf ../rc2.d/S20quota quota
       ln -sf ../rc3.d/K20quota quota
       ln -sf ../rc3.d/S20quota quota




  Ab jetzt wird die Quotaberwachung bei jedem Systemstart aktiviert.


  7.  Verschiedene Kommandos

  7.1.

  Quota

  Der Befehl quota ist fr die Benutzer gedacht. Damit knnen Sie sich
  ihren aktuellen Stand ansehen:



       Disk quotas for user tom (uid 500):
            Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
             /dev/hda8     929    1000    4000              60      65      80




  Hier sieht der Benutzer, wieviel Blcke und Inoden er in Benutzung hat
  und wie seine Quota gesetzt ist. Sobald er eine seiner Softlimiten
  berschreitet, wird in der Spalte grace die noch nicht abgelaufene
  Grace Period angezeigt.  Ausserdem wird der Wert, den der Benutzer
  berschritten hat, durch einen Stern markiert:




  Disk quotas for user tom (uid 500):
       Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
        /dev/hda8     929    1000    4000              68*     65      80      15




  Hier sieht der Benutzer, dass er sein Inoden-Soft-Limit berschritten
  hat. Die Grace Period dauert nun noch 15. Leider wird nicht angezeigt,
  was fr eine Einheit die Grace Period hat. Hoffentlich wird dies in
  zuknftigen Versionen der Quota Software gendert.


  7.2.  Quotacheck

  Das Programm quotacheck wurde vorher schon einmal erwhnt.  quotacheck
  erfasst den Platzverbrauch der einzeln Benutzer und Gruppen auf den
  Partitionen, auf den Quota eingeschaltet ist und schreibt die
  Ergebnisse in die Dateien quota.user und quota.group.


  7.3.  Repquota

  repquota erzeugt eine tabellarische bersicht ber die gesetzen Quota
  und den Platzverbrauch der Benutzer und Gruppen. Die ausfhrlichste
  bersicht erhlt man mit



       repquota -avug




  Das fhrt zu folgender Ausgabe:



       *** Report for user quotas on /dev/hda9 (/opt)
                               Block limits               File limits
       User            used    soft    hard  grace    used  soft  hard  grace
       root      --  377812       0       0          13484     0     0
       tb        --  158117       0       0           2470     0     0

       *** Report for user quotas on /dev/hda8 (/home)
                               Block limits               File limits
       User            used    soft    hard  grace    used  soft  hard  grace
       root      --      23       0       0              6     0     0
       tb        --   59149       0       0           4496     0     0
       test      --     929    1000    4000             60    65    80
       hans-rud  --     132       0       0             48     0     0
       nobody    --     221       0       0             81     0     0














