Wer den Server intensiv als Fileserver im Netz einsetzt und den Schülern die Freiheit lässt, diesen Speicherbereich für eine eigene Web-Seiten und ähnliches zu nutzen, der vermisst schon bald eine Beschränkung des von den Schülern (und Lehrern) genutzten Plattenplatzes auf dem Kommunikationsserver. Hierfür ist Quota die Lösung!
Das Quota-Paket erlaubt dem Systemverwalter unter zwei verschiedenen Aspekten den von den Benutzern genutzten Disk-Speicherbereich zu begrenzen: Einerseits kann die Anzahl der von den Nutzern oder einer Gruppe angelegten Dateieinträge (number of inodes), andererseits der Gesamtumfang des genutzten Speicherbereichs auf einer Partition (number of disk blocks) für einen Nutzer oder eine Gruppe begrenzt werden. Der Ansatz des Quota-Pakets zielt also darauf, die Benutzer zu zwingen, bei Verwendung des Speicherplatzes vorgebenene Grenzen einzuhalten.
Prinzipiell sind für jeden einzelnen Nutzer auf jeder Partition verschiedene Vorgaben einstellbar, die zudem in ein Soft- und ein Hardlimit unterteilt sind. Das Softlimit ist eine Grenze, bei der Quota bereits aktiv wird, die man für einen bestimmten Zeitraum überschreiten darf. Die Überschreitung des Softlimits wird dem Benutzer jede Nacht per E-Mail mitgeteilt. Eine Kopie dieser E-Mail erhält der Systemverwalter "root". Bei Unix-/Linux-Clients kann außerdem beim Anmelden eine Warnung erscheinen, dass die Begrenzung überschritten wurde. Das Hardlimit ist die absolute Obergrenze, kann keinesfalls überschritten werden. Das Softlimit muss also kleiner oder höchstens gleich dem Hardlimit gesetzt werden. Sind beide Grenzen gleich, brauchen Sie sich über die "grace period" und diese E-Mails keine Gedanken machen.
Die "grace period" legt fest, wie lange das Softlimit überschritten werden darf. Dieser Parameter ist nicht auf den einzelnen Nutzer bezogen, sondern auf die jeweilige Partition. Standardmäßig gilt bei der Einrichtung für alle Partitionen eine "Grace Period" von 7 Tagen.
Der ODS-Server ist für die Verwendung von Quotas schon größtenteils vorbereitet. Sie brauchen nur noch wenige Schritte selbst erledigen. Als erstes kontrollieren Sie die Datei /etc/fstab , ob die beiden fett markierten Ergänzungen vorhanden sind:
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 swap swap defaults 0 0 /dev/hda3 /var ext2 defaults,usrquota 1 2 /dev/hda4 /home ext2 defaults,usrquota 1 3 none /proc proc defaults 0 0 /dev/hdc /cdrom iso9660 defaults,ro,user,noauto 0 0 /dev/fd0 /a vfat defaults,rw,umask=000,user,noauto,noexec 0 0
Abbildung 6.11-1: Inhalt der /etc/fstab
Beim Systemstart wird das Quota-Paket automatisch gestartet.
Die Zuweisung von Quotas geschieht über die sysadm Menü: "Anwender" - "Quota". Im dortigen Menüpunkt "Hilfe" ist auch das Verfahren zur Setzung unterschiedlicher Quotas für Lehrer und Schüler beschrieben. Die folgenden Ausführungen beschreiben die Einrichtung von Qouta "mit der Hand", sind aber auch geeignet, zum besseren Verständnis für das System der Quotas beizutragen.
Das Programm edquota dient zur Bearbeitung der Quotas. Normalerweise sollte vor dem Editieren "quotacheck -avu" aufgerufen werden, um sicherzustellen, dass die aktuelle Plattenbelegung in den Quota-Dateien vorliegt. Das ist mit dem Neustart geschehen. Nur bei Problemen mit dem Dateisystem sollte das zusätzlich erfolgen.
Erstellen einer Vorlage für die Quotas:
Auf dem ODS-Server gibt es einen (nicht weiter benutzten) User games. Das Kommando "edquota -u games" startet den Editor für die Bearbeitung der Quotas dieses Beispielbenutzers:
Quotas for user games: /dev/hda3: blocks in use: 0, limits (soft = 1024, hard = 2048) inodes in use: 0, limits (soft = 20, hard = 30) /dev/hda4: blocks in use: 0, limits (soft = 4096, hard = 6144) inodes in use: 0, limits (soft = 400, hard = 500)
Abbildung 6.11-2: edquota für games
"blocks in use" ist die Gesamtzahl der Blöcke (in
Kilobytes), die der Benutzer auf der Partition belegt hat.
"inodes in use" ist die Gesamtzahl der Dateieinträge, die der
Benutzer auf der Partition angelegt hat.
Auf der Partition /dev/hda3 hat ein Benutzer eigentlich nur seine Mail-Datei
(und ggf. temporäre Dateien beim Drucken), daher wurde in diesem Beispiel ein
Softlimit von 1MB und ein Hardlimit von 2MB eingetragen, sowie die Anzahl der
Dateieinträge auf 20 (max 30) festgesetzt. Auf der Partition /dev/hda4 liegt
das Heimatverzeichnis, daher wurden hier größere Werte eingetragen. Wieviel
Platz Sie jedem Nutzer im Heimatverzeichnis lassen, müssen Sie nach der
Gesamtgröße der Festplatte entscheiden.
Kopieren von Quota-Einstellungen an die anderen Nutzer:
Das schnelle Zuweisen identischer Quota-Setzungen an alle
User mit UID über 1999 (das sind auf dem c't-Server die Schüler) oder an alle
User mit UID über 999 (das sind auf dem c't-Server die normalen User, Lehrer
und Schüler) kann dann mit dem Skript /usr/sbin/copyquota
vorgenommen werden, wobei der User games als Vorlage dient.
Außerdem wird bei aktiviertem Quota für alle neu angelegten Nutzer diese
Begrenzung sofort übernommen. Sie können mit dem Befehle "edquota"
aber für jeden einzelnen Nutzer die Beschränkungen wieder ändern.
Setzen der "grace period"
Mit dem Befehl "edquota -t", kann der Wert von "grace period" gesetzt werden. Benutzte Zeiteinheiten können sec(onds), min(utes), hour(s), day(s), week(s) und month(s) sein. Als root kann mit dem Befehl "edquota -t" mit dem Editor der Zeitraum festgelegt werden:
Time units may be: days, hours, minutes, or seconds Grace period before enforcing soft limits for users: /dev/hda3: block grace period: 7 days, file grace period: 7 days /dev/hda4: block grace period: 21 days, file grace period: 21 days
Abbildung 6.11-3: edquota -t für Zeiteinstellung
In diesem Beispiel hat ein Nutzer 7 Tage Zeit, die Begrenzung in der Partition /dev/hda3 (also /var) wieder einzuhalten, jedoch 21 Tage für sein Heimatverzeichnis, das auf /dev/hda4 liegt. Diese Grenze muss für mindestens eine Nacht unterschritten bleiben, damit beim nächtlichen Cronjob die Einhaltung der Grenze erkannt und die "grace period" bei diesem Nutzer zurückgesetzt wird. Wenn er innerhalb der gesetzten "grace period" sein Softlimit nicht wieder unterschreitet, wird nach Ablauf dieser Zeit das Softlimit als Obergrenze aktiv und es können keine Daten mehr auf dem Netzlaufwerk geschrieben werden. Unter Linux führt das in Verbindung mit grafischen Oberflächen dazu, dass der Nutzer sich nicht mehr Anmelden kann.
quotacheck
Mit Quotacheck werden die Dateien "quota.user" auf den aktuellen Stand gebracht. Der Server führt dieses Kommando jede Nacht automatisch aus. Deshalb erhält root jede Nacht eine E-Mail als Rückmeldung von dieser Funktion.
repquota
Repquota gibt eine Zusammenfassung des von den Nutzern belegten Speicherplatzes aus: Ein Aufruf mit "repquota -av" ergibt:
*** Report for user quotas on /dev/hda3 (/var)
Block limits File limits
User used soft hard grace used soft hard grace
root -- 5615 0 0 563 0 0
bin -- 2 0 0 3 0 0
lp -- 1 0 0 1 0 0
news -- 23 0 0 28 0 0
uucp -- 18 0 0 17 0 0
nobody -- 5030 0 0 4160 0 0
www -- 2 0 0 2 0 0
kwerner -- 4 2048 4096 1 20 40*** Report for user quotas on /dev/hda4 (/home)
Block limits File limits
User used soft hard grace used soft hard grace
root -- 72231 0 0 236 0 0
adm -- 3342 0 0 20 0 0
nobody -- 5 0 0 1 0 0
ftp -- 670 0 0 6 0 0
www -- 17304 0 0 1898 0 0
kwerner -- 207 4096 6144 35 300 400
quota
Quota zeigt die aktuelle Platzbelegung für den Nutzer an. Dieser Befehl steht jedem Nutzer zur Verfügung, um seinen belegten Platz und die eingetragenen Begrenzungen anzuzeigen. Als root können Sie hinter dem Befehl eine Nutzerkennung angeben, um die Angaben für diesen Nutzer anzuzeigen.
quotaon and quotaoff
Quotaon wird benutzt um die Quota-Funktion beim Systemstart einzuschalten. Mit quotaoff wird beim Herunterfahren des Servers die Quota-Funktion wieder abzuschalten. Sie können quotaoff auch während des normalen Systemlaufs verwenden, um die Quota-Funktion abzuschalten. Damit Sie diese Funktion aber wieder einschalten können, darf auf der Partition keine Datei geöffnet sein. Das können Sie meist nicht während des normalen Systemlaufs realisieren.
warnquota
Warnquota versendet Warnungen an die Benutzer per E-Mail. Dieser Befehl wird jede Nacht als Cron-Job (siehe Kapitel 6.8) ausgeführt. Dadurch werden je Nacht Warnungen an die Nutzer versandt, die ihre Speicherplatzgrenzen überschritten haben. Eine solche per E-Mail zugestellte Warnung sieht dann z.B. so aus:
Message 1/11 From root Aug 5, 98 04:39:00 pm Return-Path: <root> Date: Wed, 5 Aug 98 16:39 MEST Subject: Plattenplatzkontrolle: Grenzueberschreitung To: maxie Cc: root Hallo, Es wurde festgestellt, dass die Plattenplatzbegrenzung auf diesem System ueberschritten wurden. Folgende Konflikte treten auf: Block limits Dateieintraege Filesystem used soft hard grace used soft hard grace /dev/hda4 +- 25384 25000 30000 none 2425 2500 3000 Bitte dafuer sorgen, dass die Ueberschreitung vor Ablauf der Frist beseitigt wir Das bedeutet, das ein Teil der Dateien auf den angegebenen Partitionen geloescht oder verkleinert werden muss. Wenn der Platz weiterhin nicht freigegeben wird, kann es zu Problemen mit der Anmeldung oder anderer Software (Mail, Drucken,...) kommen und es koennen keine Daten mehr gespeichert werden. Fuer weitere Informationen bitte an den Systembetreuer wenden.
Abbildung 6.11-4: Quota-Warnung
Diese Beschreibung stellt nur eine Einführung in das Thema Quota dar. Wenn diese Beschreibung nicht ausreicht, sollten Sie weiterführende Literatur zu Rate ziehen.