Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > c4d5882bc376802b5b959fc2f6ff220f > files > 37

howto-text-de-2006-5mdv2010.0.noarch.rpm

  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.  Einführung

  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 Beiträge
  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 geschützt. Das Copyright für die
  englische Quota mini-HOWTO, auf der dieses Dokument basiert, liegt bei
  Albert M.C. Tam. Das Copyright für 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
  Lizenzgebühren verbreitet werden darf, solange dieser Copyright-
  Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt
  und ausdrücklich erwünscht. Bei einer Publikation in Papierform ist
  das Deutsche Linux HOWTO Projekt hierüber zu informieren.


  1.4.  Danksagungen

  Bedanken möchte 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 persönliches
  Verzeichnis besitzen, neigen dazu, dass sie vielzuviel in dieses
  Verzeichnis speichern.  Vom hochauflösenden 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 fällig
  wird. Die Lösung dazu heisst Quota.  Mit Quota kann der
  Systemadministrator den verfügbaren Speicherplatz für jeden Benutzer
  oder Gruppe einschränken.


  2.2.  Wichtige Hinweise

  Quota werden zur Zeit für jede Partition seperat überwacht. Falls ein
  Benutzer auf mehrere Partitionen Schreibrechte hat, muss man für jede
  Partition eine einzelne Quota setzen, falls dies benötigt wird. Ob
  dies vorteilhaft ist oder nicht, darüber kann man sich streiten.


  2.3.  Wo kommen Quota zum Einsatz?

  Viele Computerbesitzer wissen gar nicht, wie stark sie durch Quota
  eingeschränkt 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 lässt
  sich vermeiden, das Benutzer zuviel auf dem Server ablegen und dadurch
  die Festplatte füllen.


  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 benötigt. Den Source
  kann man von


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


  herunterladen. Natürlich funktioniert auch die Kernelgeneration 2.2.


  2.5.2.  Quota Software

  Um Quota zu setzen, benötigt 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 dafür 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 füllen 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 füllen 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 höhere Priorität.
  Wenn z.B. eine Gruppe ein Limit von 5 MBytes hat, und eine Angehöriger
  dieser Gruppe hat ein Limit von 20 MBytes, so darf dieser maximal
  20 MBytes füllen, auch wenn seine Gruppe nur 5 MBytes dürfte.

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



  3.4.

  Softlimit

  Ein Benutzer darf sein Softlimit für 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
  Möglichkeit für 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
  heruntergezählt 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 günstiger, 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 möchte, muss man die Option
  »usrquota« einsetzen; das Ergebnis könnte dann zum Beispiel so
  aussehen:



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




  Falls man Gruppenquota einsetzen möchte, muss man die Option
  »grpquota« einsetzen; das Ergebnis könnte dann zum Beispiel so
  aussehen:



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





  Falls beide obengenannten Optionen benötigt 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 erwähnt, das es Benutzerquota und
  Gruppenquota gebe und das die Quota für jede Partition einzeln
  überwacht werde. Aus diesen Gründen muss man für jede zu überwachende
  Partition zwei Dateien erstellen. Auch wenn nur Benutzerquota oder
  Gruppenquota zum Einsatz kommen, muss man zwei Dateien haben.

  Diese zwei Dateien müssen 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 könnten 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 durchführen muss, muss wohl nicht speziell erwähnt werden.



  4.5.

  Nachträglich eine Partition einbinden

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


  4.6.

  Änderungen wirksam machen

  Nun könnte 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 tatsächlich zu aktivieren,
  genügt 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
  Möglichkeit, da wir / nicht einfach im laufenden Betrieb unmounten
  können.

  Sollen in Zukunft weitere Dateisysteme mit Quotas versehen werden,
  müssen nur noch die Schritte, die in den Abschnitten ``Erstellen der
  Dateien quota.user und quota.group'', ``Nachträglich eine Partition
  einbinden'' sowie ``Änderungen wirksam machen'' beschrieben werden,
  ausgeführt werden.


  5.

  Setzen der Quota

  Diese Operation wird mit dem Programm edquota durchgeführt.  Falls man
  mehr über dieses Programm erfahren möchte, 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
  Grösse 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 möchte, 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 könnte 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 erklärt:



       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 Blöcke der Benutzer schon benutzt. In den
  Klammern kann man die Softlimite und die Hardlimite für die Anzahl
  Blöcke 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
  für 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 möchte die Quota für ein bestimmte Gruppe setzen.
  Falls ich dies für 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 für mehrere Benutzer vergeben

  Hier ist eine Lösung, 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 aufwärts
  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 für
  jede Partition getrennt setzen. Hinter »block grace period« folgt die
  Zeitspanne für das Block-Limit, hinter »file grace period« die
  Zeitspanne für die Inoden-Limite. Mögliche Werte sind Tage (days),
  Stunden (hours), Minuten (minutes) und Sekunden (seconds). Ein guter
  Wert ist sieben Tage.


  6.  Starten und beenden der Quotaüberwachung

  6.1.  Manuell

  Zum Starten und Beenden der Quotaüberwachung werden die Programme
  quotaon und quotaoff benötigt.

  Mit



       quotaon -avug




  wird die Quotaüberwachung eingeschaltet, mit



       quotaoff -avug




  wird sie ausgeschaltet.


  6.2.

  Mit einem Skript

  Am besten wäre es, wenn man die Quotaüberwachung schon beim
  Systemstart einschalten könnte. Dazu kann man sich folgenden Skriptes
  bedienen:



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

       exit 0


  Das Skript erwartet einen Parameter, nämlich »start« oder »stop«.  Mit
  dem Paramter »start« wird die Quotaüberwachung gestartet, mit dem
  Parameter »stop« wird sie beendet.

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



       chmod +x /pfad/skriptname




  durchführen. /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 führt 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 Quotaüberwachung bei jedem Systemstart aktiviert.


  7.  Verschiedene Kommandos

  7.1.

  Quota

  Der Befehl quota ist für die Benutzer gedacht. Damit können 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 Blöcke 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 für eine Einheit die Grace Period hat. Hoffentlich wird dies in
  zukünftigen Versionen der Quota Software geändert.


  7.2.  Quotacheck

  Das Programm quotacheck wurde vorher schon einmal erwähnt.  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 ausführlichste
  Übersicht erhält man mit



       repquota -avug




  Das führt 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