Quota: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(41 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
Disk '''Quota''' (englisch disk ‚Festplatte‘ und quota ‚Anteil‘, ‚Kontingent‘) sind Begrenzungen des Speicherplatzes auf Datenträgern für Benutzer oder Benutzergruppen


== Beschreibung ==
== Beschreibung ==
=== Was sind Quota? ===
=== 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.
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.


; Wichtige Hinweise
; 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.
Quota werden zurzeit für jede Partition ''separat'' ü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.


=== Wo kommen Quota zum Einsatz? ===
=== Einsatzgebiete ===
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.
Viele Computerbesitzer wissen gar nicht, wie stark sie durch Quota eingeschränkt werden.  
* Ein anschauliches Beispiel sind die Internetprovider.
* 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 groß 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.
Quota kommt vorwiegend bei Servern zum Einsatz.  
* Denn nur dadurch lässt sich vermeiden, dass Benutzer zu viel auf dem Server ablegen und dadurch die Festplatte füllen.


=== Aktueller Status von Quota ===
=== Arten 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.
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.


=== Minimale Systemanforderungen ===
==== Quota auf Benutzerebene ====
==== Kernel ====
Bei Quota auf Benutzerebene wird der Speicherplatz der einzelnen Benutzer überwacht.  
Es wird mindestens ein Kernel der 2.0.x-Serie benötigt. Den Source kann man von<blockquote> <code>[./Ftp://metalab.unc.edu/pub/Linux/kernel/v2.0 metalab.unc.edu:/pub/Linux/kernel/v2.0]</code></blockquote>herunterladen. Natürlich funktioniert auch die Kernelgeneration 2.2.
* 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.


==== Quota Software ====
==== Quota auf Gruppenebene ====
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<blockquote> <code>[./Ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/ ftp.funet.fi:/pub/Linux/PEOPLE/Linus/subsystems/quota/]</code></blockquote>herunterladen und kompilieren.
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.
 
==== 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.&nbsp;B.&nbsp; eine Gruppe ein Limit von 5 MBytes hat, und ein 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.
 
==== 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.
 
==== Hardlimit ====
Ein Benutzer kann sein ''Hardlimit'' ''nicht'' überschreiten.
* Es gibt ''keine'' Möglichkeit für den Benutzer, diese Limite zu umgehen.
 
==== 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.


== Installation ==
== Installation ==
== Syntax ==
# apt install quota
 
Optional
# apt install quotatool
 
== Aufruf ==
=== Optionen ===
=== Optionen ===
=== Parameter ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Umgebung ===
=== Exit-Status ===
=== Rückgabewert ===


== Konfiguration ==
== Konfiguration ==
=== Das System auf Quota vorbereiten ===
==== Kernelkonfiguration ====
Bei der Kernelkonfiguration muss man auf die Frage mit »y« antworten.
==== Kompilieren und Installieren der Quota Software ====
Den Source von der Quota Software findet man unter <code>[./Ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/ ftp.funet.fi:/pub/Linux/PEOPLE/Linus/subsystems/quota/]</code>Eventuell ist es günstiger, die Software von einem Mirror zu laden, da obengenannter Server die meiste Zeit überlastet ist.
==== Anpassen der /etc/fstab ====
Auf einem System, auf dem Quota noch nie zum Einsatz kam, sieht die <code>/etc/fstab</code> normalerweise so aus: Falls man ''Benutzerquota'' einsetzen möchte, muss man die Option »usrquota« einsetzen; das Ergebnis könnte dann zum Beispiel so aussehen: Falls man ''Gruppenquota'' einsetzen möchte, muss man die Option »grpquota« einsetzen; das Ergebnis könnte dann zum Beispiel so aussehen: Falls beide obengenannten Optionen benötigt werden:
==== 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 <code>quota.user</code> und <code>quota.group</code> 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: In dem Beispiel wird davon ausgegangen, dass die zu überwachende Partition unter <code>/partition</code> gemountet ist.
* Das man diese Operation als root durchführen muss, muss wohl nicht speziell erwähnt werden.
==== 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.
==== Ä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 <code>mount</code> mit der Option »-o remount« aufruft.
* Beispielweise: Im Falle des Wurzelverzeichnisses ist dies sogar die einzige Möglichkeit, da wir <code>/</code> 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.
=== Dateien ===
=== Dateien ===


== Anwendungen ==
== Anwendung ==
 
=== Setzen der Quota ===
Diese Operation wird mit dem Programm <code>edquota</code> durchgeführt.
* Falls man mehr über dieses Programm erfahren möchte, dem sei die Manual Page des Programms ans Herz gelegt.
 
==== Vorbereitung ====
Zuerst muss mit der Platzverbrauch der einzelnen Benutzer erfasst werden.
* Je nach Grösse der Partition(en) und dem belegten Speicherplatz kann dies unterschiedlich lange dauern.
 
==== 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 auf.
* Dann lande ich in dem Editor, der in der Variable <code>$EDITOR</code> spezifiziert ist.
* Normalerweise ist das <code>vi</code>.
* Das könnte dann zum Beispiel so aussehen: Hier nun jede Zeile einzeln erklärt: Hier steht der Name des Benutzers, dessen Quota man gerade bearbeitet. Hier steht die Partition, auf die sich die Angaben beziehen (in diesem Fall <code>/dev/hda9</code>) 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. 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. Diese beiden Zeilen haben die gleiche Bedeutung wie die beiden anderen, beziehen sich jedoch auf eine andere Partition: in diesem Fall <code>/dev/hda2</code>.
 
==== 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 auf.
* Dann erscheint wieder der Editor; das sieht dann zum Beispiel so aus: Die Optionen sind dieselben wie oben, deshalb werde ich nicht noch einmal daraufeingehen.
 
==== 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 <code>csh</code> als Shell benutzen: 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.
 
==== Die Grace Period setzen ====
Zu guter letzt kann man noch die Grace Period setzen.
* Dazu ruft man auf.
* Dann gelangt man wieder in seinen Lieblingseditor und kriegt folgendes zu sehen: 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.
 
=== Starten und beenden der Quotaüberwachung ===
==== Manuell ====
Zum Starten und Beenden der Quotaüberwachung werden die Programme <code>quotaon</code> und <code>quotaoff</code> benötigt.
 
Mit wird die Quotaüberwachung eingeschaltet, mit wird sie ausgeschaltet.
 
==== 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: 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 durchführen. <code>/pfad/skriptname</code> 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 <code>./skriptname</code> ein.
* Auch hier muss <code>skriptname</code> noch ersetzt werden.
 
Falls man es als Init-Skript benutzen will, muss man das Skript zuerst nach <code>/etc/init.d</code> (bei SuSE-Linux/ <code>/sbin/init.d</code>) kopieren.
* Am besten nennt man es <code>quota</code>.
* Dann führt man folgende Schritte durch: Ab jetzt wird die Quotaüberwachung bei jedem Systemstart aktiviert.
=== Verschiedene Kommandos ===
==== Quota ====
Der Befehl <code>quota</code> ist für die Benutzer gedacht.
* Damit können Sie sich ihren aktuellen Stand ansehen: 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: 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.
 
==== Quotacheck ====
Das Programm <code>quotacheck</code> wurde vorher schon einmal erwähnt. <code>quotacheck</code> erfasst den Platzverbrauch der einzeln Benutzer und Gruppen auf den Partitionen, auf den Quota eingeschaltet ist und schreibt die Ergebnisse in die Dateien <code>quota.user</code> und <code>quota.group</code>.
 
==== Repquota ====
<code>repquota</code> erzeugt eine tabellarische Übersicht über die gesetzen Quota und den Platzverbrauch der Benutzer und Gruppen.
* Die ausführlichste Übersicht erhält man mit Das führt zu folgender Ausgabe:
 
==== Quotaon und Quotaoff ====
Um Quota an- bzw. auszuschalten:
sudo quotaon -a
sudo quotaoff -a
 
==== Quotacheck ====
Quotacheck scannt das Dateisystem nach der aktuellen Plattenauslastung:
sudo quotacheck -avugm
quotacheck: Scanning /dev/sda1 [/] done
quotacheck: Checked 22685 directories and 177183 files
 
==== Repquota ====
Repquota liefert einen Bericht:
sudo repquota /
*** Report for user quotas on device /dev/sda1
Block grace time: 7days; Inode grace time: 7days
 
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      -- 3770548      0      0        198636    0    0
daemon    --      56      0      0              5    0    0
...
otto      +-  102524  95000  120000  6days      7    0    0
 
== Sicherheit ==
== Sicherheit ==
== Dokumentation ==
== Dokumentation ==
=== RFC ===
=== RFC ===
=== Man-Pages ===
=== Man-Page ===
=== Info-Pages ===
=== Info-Pages ===
=== Siehe auch ===
=== Siehe auch ===
Zeile 44: Zeile 218:
=== Projekt-Homepage ===
=== Projekt-Homepage ===
=== Weblinks ===
=== Weblinks ===
=== Einzelnachweise ===
# http://www.linuxhaven.de/dlhp/HOWTO/mini/DE-Quota-HOWTO.html
<references />
 
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
 
= TMP =


== Verschiedene Kommandos ==
=== Quota ===
Der Befehl <code>quota</code> ist für die Benutzer gedacht. Damit können Sie sich ihren aktuellen Stand ansehen:<blockquote> </blockquote>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:<blockquote> </blockquote>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.


=== Quotacheck ===
Das Programm <code>quotacheck</code> wurde vorher schon einmal erwähnt. <code>quotacheck</code> erfasst den Platzverbrauch der einzeln Benutzer und Gruppen auf den Partitionen, auf den Quota eingeschaltet ist und schreibt die Ergebnisse in die Dateien <code>quota.user</code> und <code>quota.group</code>.


=== Repquota ===
<code>repquota</code> erzeugt eine tabellarische Übersicht über die gesetzen Quota und den Platzverbrauch der Benutzer und Gruppen. Die ausführlichste Übersicht erhält man mit<blockquote> </blockquote>Das führt zu folgender Ausgabe:<blockquote> </blockquote>


= TMP =
= TMP =
Als Administrator eines Ubuntu-Systems (und natürlich jedes anderen Betriebssystems auch) möchte man eventuell nicht, dass die Benutzer zu viel Festplatten-Speicherplatz verbrauchen. Ist beispielsweise der Speicherplatz der Home-Partition vollständig aufgebraucht, so können sich die Benutzer oftmals nicht einmal mehr am grafischen X-Desktop anmelden, da hierbei Dateien erstellt werden müssen. Des Weiteren läuft ein System langsamer, wenn eine Festplatte, die gebraucht wird, "randvoll" ist. Abhilfe schafft hier das Programm Quota.
Als Administrator möchte man eventuell nicht, dass die Benutzer zu viel Festplatten-Speicherplatz verbrauchen.  
* Ist beispielsweise der Speicherplatz der Home-Partition vollständig aufgebraucht, so können sich die Benutzer oftmals nicht einmal mehr am grafischen X-Desktop anmelden, da hierbei Dateien erstellt werden müssen.  
* Des Weiteren läuft ein System langsamer, wenn eine Festplatte, die gebraucht wird, "randvoll" ist.  
* Abhilfe schafft hier das Programm Quota.


Quota erlaubt es, den Festplattenspeicher eines Systems spezifisch einzuschränken.
Quota erlaubt es, den Festplattenspeicher eines Systems spezifisch einzuschränken.
 
* Alle in der /etc/fstab [4] gelisteten Geräten und Partitionen können beschränkt werden, solange diese beschreibbar und in einem gängigen Linux-Dateisystem vorliegen.
    Alle in der /etc/fstab [4] gelisteten Geräten und Partitionen können beschränkt werden, solange diese beschreibbar und in einem gängigen Linux-Dateisystem vorliegen.
* Jedes dort gelistete Gerät und jede Partition kann individuell für einzelne Benutzer oder auch für ganze Gruppen eingeschränkt werden.
 
* Die Einschränkung kann sich sowohl auf den Festplatten-Speicherplatz beziehen, welcher zur Verfügung gestellt werden soll, als auch auf die Anzahl an Daten (inklusive Ordner), die angelegt werden dürfen.
    Jedes dort gelistete Gerät und jede Partition kann individuell für einzelne Benutzer oder auch für ganze Gruppen eingeschränkt werden.
* Man kann darüber entscheiden, ob neben dem Verhindern einer weiteren Speicherplatz-Vergabe weitere Aktionen ausgeführt werden sollen, etwa das Benachrichtigen der betroffenen Person per E-Mail.
 
* Quota funktioniert, ganz gleich ob der Benutzer lokal am Rechner arbeitet oder von extern, z.&nbsp;B.&nbsp; per SSH oder FTP auf diesen zugreift.
    Die Einschränkung kann sich sowohl auf den Festplatten-Speicherplatz beziehen, welcher zur Verfügung gestellt werden soll, als auch auf die Anzahl an Daten (inklusive Ordner), die angelegt werden dürfen.
 
    Man kann darüber entscheiden, ob neben dem Verhindern einer weiteren Speicherplatz-Vergabe weitere Aktionen ausgeführt werden sollen, beispielsweise das Benachrichtigen der betroffenen Person per E-Mail.
 
    Quota funktioniert, ganz gleich ob der Benutzer lokal am Rechner arbeitet oder von extern, z.B. per SSH oder FTP auf diesen zugreift.


Hinweis:
Hinweis:


Die ständige Überprüfung aller Dateizugriffe daraufhin, ob eine Grenze überschritten wird, ist natürlich nicht ohne Folgen. Quota belastet die Leistung der Festplatte. Ist die Zugriffsgeschwindigkeit ein wichtiges Kriterium, kann man durch Partitionieren erreichen, dass Benutzer nicht den wichtigen Anwendungen den Plattenplatz wegnehmen. Daher sollte man Quota nur auf Partitionen aktivieren, auf denen Benutzer ihre Daten ablegen.
Die ständige Überprüfung aller Dateizugriffe daraufhin, ob eine Grenze überschritten wird, ist natürlich nicht ohne Folgen.  
* Quota belastet die Leistung der Festplatte.  
* Ist die Zugriffsgeschwindigkeit ein wichtiges Kriterium, kann man durch Partitionieren erreichen, dass Benutzer nicht den wichtigen Anwendungen den Plattenplatz wegnehmen.  
* Daher sollte man Quota nur auf Partitionen aktivieren, auf denen Benutzer ihre Daten ablegen.


=== Wie funktioniert Quota? ===
=== Wie funktioniert Quota? ===
 
Quota wird nach der Installation vom System als Dienst ausgeführt.  
Quota wird nach der Installation vom System als Dienst ausgeführt. Es wird standardmäßig beim Booten geladen und muss daher nicht explizit gestartet werden. Nach dem Hochfahren wertet das Programm einige Dateien aus und sorgt nun selbstständig dafür, dass die Benutzer oder Gruppen nicht zu viel Speicherplatz in Anspruch nehmen.
* Es wird standardmäßig beim Booten geladen und muss daher nicht explizit gestartet werden.  
* Nach dem Hochfahren wertet das Programm einige Dateien aus und sorgt nun selbstständig dafür, dass die Benutzer oder Gruppen nicht zu viel Speicherplatz in Anspruch nehmen.


Im Folgenden werden einige Begriffe erklärt, die man verstehen sollte, wenn man Quota verwenden will.
Im Folgenden werden einige Begriffe erklärt, die man verstehen sollte, wenn man Quota verwenden will.


==== Number of Disk Blocks und Number of Inodes ====
==== Number of Disk Blocks und Number of Inodes ====
 
Ein Speicherplatz-Limit wird an der Stelle "Number of Disk Blocks" gesetzt, die Einheit eines Disk Blocks ist dabei ein Kilobyte.  
Ein Speicherplatz-Limit wird an der Stelle "Number of Disk Blocks" gesetzt, die Einheit eines Disk Blocks ist dabei ein Kilobyte. Ein Datei-Anzahl-Limit wird an der Stelle "Number of Inodes" gesetzt.
* Ein Datei-Anzahl-Limit wird an der Stelle "Number of Inodes" gesetzt.


==== Under Quota ====
==== Under Quota ====
"Under Quota" bezeichnet den Zustand, welchen ein Benutzer oder eine Gruppe aus der Sicht von Quota hat, wenn der Umfang des verbrauchten Speicherplatzes und die Anzahl seiner angelegten Dateien sowohl das "Soft Limit" als auch das "Hard Limit" unterschreiten.
"Under Quota" bezeichnet den Zustand, welchen ein Benutzer oder eine Gruppe aus der Sicht von Quota hat, wenn der Umfang des verbrauchten Speicherplatzes und die Anzahl seiner angelegten Dateien sowohl das "Soft Limit" als auch das "Hard Limit" unterschreiten.


Zeile 117: Zeile 260:
Hinweis:
Hinweis:


Die Limits werden in Dateisystemblöcken festgesetzt. Wie groß die Blocke sind, findet man mit den jeweiligen Verwaltungstools zum Dateisystem heraus, beispielsweise tune2fs für ext-Dateisysteme.
Die Limits werden in Dateisystemblöcken festgesetzt.  
* Wie groß die Blocke sind, findet man mit den jeweiligen Verwaltungstools zum Dateisystem heraus, beispielsweise tune2fs für ext-Dateisysteme.


===== Hard Limit =====
===== Hard Limit =====
"Hard Limit" gibt den maximal zur Verfügung gestellten Speicherplatz oder die maximale Dateianzahl an. Der Benutzer kann dieses Limit nie überschreiten. Sollte er an dieses Limit stoßen, so hat es für ihn den gleichen Effekt, als wäre kein weiterer Speicherplatz auf der Partition vorhanden.
"Hard Limit" gibt den maximal zur Verfügung gestellten Speicherplatz oder die maximale Dateianzahl an.  
* Der Benutzer kann dieses Limit nie überschreiten.  
* Sollte er an dieses Limit stoßen, so hat es für ihn den gleichen Effekt, als wäre kein weiterer Speicherplatz auf der Partition vorhanden.
 
Hinweis:
Hinweis:


Befindet sich ein Benutzer nahe am durch Quota gesetzten Hard Limit, so kann er sich eventuell nicht einmal mehr an der grafischen Oberfläche anmelden, da hierfür Speicherplatz für neu erstellte Dateien gebraucht wird. In dem Fall kann nur noch der Administrator durch eine Erweiterung des Hard Limits helfen, oder der User loggt sich in ein System-Terminal und löscht von dort Dateien.
Befindet sich ein Benutzer nahe am durch Quota gesetzten Hard Limit, so kann er sich eventuell nicht einmal mehr an der grafischen Oberfläche anmelden, da hierfür Speicherplatz für neu erstellte Dateien gebraucht wird.  
* In dem Fall kann nur noch der Administrator durch eine Erweiterung des Hard Limits helfen, oder der User loggt sich in ein System-Terminal und löscht von dort Dateien.


===== Soft Limit =====
===== Soft Limit =====
"Soft Limit" ist eine Begrenzung, welche kleiner oder gleich dem Hard Limit gesetzt werden muss. Wird das Soft Limit überschritten, so erhält der Benutzer den Zustand "Over Quota". Das Soft Limit kann bis zum Wert des Hard Limits überschritten werden, was allerdings mit Konsequenzen verbunden ist, welche vom Administrator bestimmt werden.
"Soft Limit" ist eine Begrenzung, welche kleiner oder gleich dem Hard Limit gesetzt werden muss.  
* Wird das Soft Limit überschritten, so erhält der Benutzer den Zustand "Over Quota".  
* Das Soft Limit kann bis zum Wert des Hard Limits überschritten werden, was allerdings mit Konsequenzen verbunden ist, welche vom Administrator bestimmt werden.


Ist die Verwendung eines Soft Limits nicht erwünscht, so werden die Limit-Werte von Soft Limit gleich denen von Hard Limit gesetzt.
Ist die Verwendung eines Soft Limits nicht erwünscht, so werden die Limit-Werte von Soft Limit gleich denen von Hard Limit gesetzt.


==== Grace Period ====
==== Grace Period ====
Ist ein Benutzer Over Quota, hat also das Soft Limit überschritten, so erhält er eine Frist, die "Grace Period" genannt wird. Standardmäßig beträgt sie sieben Tage, kann aber frei vom Administrator gewählt werden. Während dieser Frist muss der Benutzer oder die Gruppe durch Verlagern, Löschen oder Komprimieren von Dateien den verbrauchten Speicherplatz wieder soweit reduzieren, dass der Under Quota Zustand erreicht wird.
Ist ein Benutzer Over Quota, hat also das Soft Limit überschritten, so erhält er eine Frist, die "Grace Period" genannt wird.  
* Standardmäßig beträgt sie sieben Tage, kann aber frei vom Administrator gewählt werden.  
* Während dieser Frist muss der Benutzer oder die Gruppe durch Verlagern, Löschen oder Komprimieren von Dateien den verbrauchten Speicherplatz wieder soweit reduzieren, dass der Under Quota Zustand erreicht wird.


Um sicherzugehen, dass sie von dem Umstand in Kenntnis gesetzt werden, können Administrator, Benutzer oder Gruppe über das Vorkommnis per E-Mail oder System-Mail informiert werden.
Um sicherzugehen, dass sie von dem Umstand in Kenntnis gesetzt werden, können Administrator, Benutzer oder Gruppe über das Vorkommnis per E-Mail oder System-Mail informiert werden.


Sollte der Benutzer die Frist von Grace Period versäumen, so nimmt sein derzeitig verbrauchter Speicherplatz das Hard Limit ein. Der Benutzer kann nun nicht mehr produktiv arbeiten und muss sich nun an den Administrator wenden, damit dieser ihm entweder die Frist verlängert, das Hard Limit etwas erhöht oder selber Dateien löscht.
Sollte der Benutzer die Frist von Grace Period versäumen, so nimmt sein derzeitig verbrauchter Speicherplatz das Hard Limit ein.  
* Der Benutzer kann nun nicht mehr produktiv arbeiten und muss sich nun an den Administrator wenden, damit dieser ihm entweder die Frist verlängert, das Hard Limit etwas erhöht oder selber Dateien löscht.


;Grafik
;Grafik
Zeile 143: Zeile 296:
quota_grafika.png
quota_grafika.png


Auf der Partition /dev/sda2, welche als /home eingehängt wird, wird der Speicherplatz vom User Jan eingeschränkt. Sein Speicherplatz ist aufgeteilt in Under Limit und Soft Limit. Hard Limit stellt die ihm gesetzte Grenze dar.
Auf der Partition /dev/sda2, welche als /home eingehängt wird, wird der Speicherplatz vom User Jan eingeschränkt.  
 
* Sein Speicherplatz ist aufgeteilt in Under Limit und Soft Limit.  
== Installation ==
* Hard Limit stellt die ihm gesetzte Grenze dar.
# apt install quota
 
Optional
# apt install quotatool
 
welches das Einstellen enorm vereinfacht und hier auch erklärt wird.


== Konfiguration ==
== Konfiguration ==
Zeile 157: Zeile 304:
Im Folgenden wird anhand des oben grafisch dargestellten Beispiels erklärt, wie man nun eine konkrete Einschränkung vornimmt, und werden alternative Einstellmöglichkeiten aufgezeigt.
Im Folgenden wird anhand des oben grafisch dargestellten Beispiels erklärt, wie man nun eine konkrete Einschränkung vornimmt, und werden alternative Einstellmöglichkeiten aufgezeigt.


Nach der Installation muss als erstes die Datei /etc/fstab mit Root-Rechten in einem Texteditor geöffnet werden. Hier müssen nun die Dateisysteme gekennzeichnet werden, auf welchen Orte eingeschränkt werden sollen, damit Quota weiß, was kontrolliert werden soll.
Nach der Installation muss als erstes die Datei /etc/fstab mit Root-Rechten in einem Texteditor geöffnet werden.  
* Hier müssen nun die Dateisysteme gekennzeichnet werden, auf welchen Orte eingeschränkt werden sollen, damit Quota weiß, was kontrolliert werden soll.


Hier eine Passage einer /etc/fstab, in welcher die /home-Partition gemountet wird. Dort liegt der Ordner ./Jan, welcher beispielshalber eingeschränkt wird:
Hier eine Passage einer /etc/fstab, in welcher die /home-Partition gemountet wird.  
* Dort liegt der Ordner ./Jan, welcher beispielshalber eingeschränkt wird:
  # Entry for /dev/sda2 :
  # Entry for /dev/sda2 :
  UUID=a2798917-95d8-4805-aa4d-d06fa863a67c /home ext3 relatime 0 2
  UUID=a2798917-95d8-4805-aa4d-d06fa863a67c /home ext3 relatime 0 2
Zeile 171: Zeile 320:
  UUID=a2798917-95d8-4805-aa4d-d06fa863a67c /home ext3 relatime,usrquota 0 2
  UUID=a2798917-95d8-4805-aa4d-d06fa863a67c /home ext3 relatime,usrquota 0 2


Hinweis:
; Hinweis
Es ist auch möglich, auf der gleichen Partition Einschränkungen sowohl für Benutzer als auch für Gruppen gleichzeitig zu setzen.
* In diesem Fall fügt man einfach beide Attribute, durch Komma getrennt, an.


Es ist auch möglich, auf der gleichen Partition Einschränkungen sowohl für Benutzer als auch für Gruppen gleichzeitig zu setzen. In diesem Fall fügt man einfach beide Attribute, durch Komma getrennt, an.
Nun muss das Dateisystem neu eingehängt werden.  
 
* Wurde (wie in diesem Beispiel) das /home-Verzeichnis oder gar das Wurzelverzeichnis selber mit einem Attribut erweitert, funktioniert dies in der Regel nur durch einen Computer-Neustart.  
Nun muss das Dateisystem neu eingehängt werden. Wurde (wie in diesem Beispiel) das /home-Verzeichnis oder gar das Wurzelverzeichnis selber mit einem Attribut erweitert, funktioniert dies in der Regel nur durch einen Computer-Neustart. Für das /home-Verzeichnis kann man sich allerdings auch einfach aus allen bestehenden Benutzersitzungen abmelden und dann mit Strg + Alt + F1 in eine Textkonsole wechseln. Dort meldet man sich nun als root an und führt das Kommando init 1 aus. Dadurch wird das Betriebssystem vom Mehrbenutzerbetrieb in den Einzelbenutzerbetrieb geschaltet. Da root seine Partition auf /root und nicht auf /home hat, kann man nun die /home-Partition aushängen und wieder erneut einhängen. Anschließend wechselt man wieder mit init 3 in den Mehrbenutzermodus, meldet sich aus dem root-Konto ab und wechselt mit Strg + Alt + F7 wieder auf den grafischen Anmeldebildschirm.
* Für das /home-Verzeichnis kann man sich allerdings auch einfach aus allen bestehenden Benutzersitzungen abmelden und dann mit Strg + Alt + F1 in eine Textkonsole wechseln.  
 
* Dort meldet man sich nun als root an und führt das Kommando init 1 aus.  
Hinweis:
* Dadurch wird das Betriebssystem vom Mehrbenutzerbetrieb in den Einzelbenutzerbetrieb geschaltet.  
* Da root seine Partition auf /root und nicht auf /home hat, kann man nun die /home-Partition aushängen und wieder erneut einhängen.  
* Anschließend wechselt man wieder mit init 3 in den Mehrbenutzermodus, meldet sich aus dem root-Konto ab und wechselt mit Strg + Alt + F7 wieder auf den grafischen Anmeldebildschirm.


; Hinweis
Für diese Prozedur muss für root ein Passwort gesetzt sein.
Für diese Prozedur muss für root ein Passwort gesetzt sein.
Automatisches Erstellen der Dateien aquota.user beziehungweise aquota.group
Automatisches Erstellen der Dateien aquota.user beziehungweise aquota.group


Damit Quota funktionieren kann, müssen nun Informationen über die Datei-Rechte der einzelnen Benutzer und Gruppen auf der einzuschränkenden Partition gesammelt werden. Diese Informationen werden in Dateien namens quota.user und / oder quota.group in den jeweiligen Orten gespeichert.
Damit Quota funktionieren kann, müssen Informationen über die Datei-Rechte der einzelnen Benutzer und Gruppen auf der einzuschränkenden Partition gesammelt werden.  
 
* Diese Informationen werden in Dateien namens quota.user und / oder quota.group in den jeweiligen Orten gespeichert.
Hierfür führt man als Root folgenden Befehl aus [3]:
sudo quotacheck OPTIONEN
 
Die Optionen sind
-a für all, also für alle zu überwachenden Dateisysteme aus der /etc/fstab
 
-c für create, also Schreiben der Dateien auf die Festplatte


  -f für force, also Erzwingen der Operation
Hierfür führt man als Root folgenden Befehl aus
  # quotacheck OPTIONEN


-M für try-remount, führt die Operation gegebenenfalls ohne Remount durch
Optionen
 
{| class="wikitable sortable"
-u für das Erstellen der aquota.user Datei, falls erforderlich
|-
 
! Option !! Beschreibung
-g für das Erstellen der aquota.group Datei, falls erforderlich
|-
| -a || für all, also für alle zu überwachenden Dateisysteme aus der /etc/fstab
|-
| -c || für create, also Schreiben der Dateien auf die Festplatte
|-
| -f || für force, also Erzwingen der Operation
|-
| -M ||  try-remount, führt die Operation gegebenenfalls ohne Remount durch
|-
| -u || für das Erstellen der aquota.user Datei, falls erforderlich
|-
| -g || für das Erstellen der aquota.group Datei, falls erforderlich
|}


In diesem Beispiel findet man nun im /home-Verzeichnis eine Datei aquota.user vor, die ja für diesen Nutzer angelegt wurde.
In diesem Beispiel findet man nun im /home-Verzeichnis eine Datei aquota.user vor, die ja für diesen Nutzer angelegt wurde.
Zeile 210: Zeile 370:
  sudo chmod 600 /quota.*  
  sudo chmod 600 /quota.*  


Die korrekte Funktionalität kann nun getestet werden. Folgender Befehl gibt eine Ansicht der Quota-Informationstabelle für Benutzer und Gruppen aus:
Die korrekte Funktionalität kann nun getestet werden.  
* Folgender Befehl gibt eine Ansicht der Quota-Informationstabelle für Benutzer und Gruppen aus:
  sudo repquota /  
  sudo repquota /  


Zeile 217: Zeile 378:
=== Einstellungen ===
=== Einstellungen ===
==== Einen User einschränken ====
==== Einen User einschränken ====
Am Beispiel des Benutzers "otto" soll erklärt werden, wie man einen einzelnen Benutzer im Platzverbrauch auf der Festplatte einschränken kann. Der Befehl [3]
Am Beispiel des Benutzers "otto" soll erklärt werden, wie man einen einzelnen Benutzer im Platzverbrauch auf der Festplatte einschränken kann.  
* Der Befehl [3]
  # Allgemein
  # Allgemein
  sudo edquota -u <benutzername>
  sudo edquota -u <benutzername>
Zeile 246: Zeile 408:


=== Mehrere User einschränken ===
=== Mehrere User einschränken ===
Möchte man Werte für Quota für alle Benutzer des Systems setzen, so kann man sich eines kleinen Shellskriptes behelfen. Zuerst setzt man die Quota-Werte bei einem Benutzer, beispielsweise wieder "otto". Danach führt man in einem Terminal [3]
Möchte man Werte für Quota für alle Benutzer des Systems setzen, so kann man sich eines kleinen Shellskriptes behelfen.  
* Zuerst setzt man die Quota-Werte bei einem Benutzer, beispielsweise wieder "otto".  
* Danach führt man in einem Terminal [3]
  sudo edquota -p otto `awk -F: '$3 > 1000 {print $1}' /etc/passwd`  
  sudo edquota -p otto `awk -F: '$3 > 1000 {print $1}' /etc/passwd`  
aus. Dies überträgt die bei "otto" gesetzten Quota-Einstellungen auf alle lokalen Benutzer (also alle Benutzer mit einer Benutzer-ID, die größer als 1000 ist).
aus.  
* Dies überträgt die bei "otto" gesetzten Quota-Einstellungen auf alle lokalen Benutzer (also alle Benutzer mit einer Benutzer-ID, die größer als 1000 ist).


=== Grace Period setzen ===
=== Grace Period setzen ===
Zeile 258: Zeile 423:
   /dev/hda3                    1day                  1day
   /dev/hda3                    1day                  1day


setzen. Hierfür können die Zeiteinheiten sec(onds), min(utes), hour(s), day(s), week(s) und month(s) verwendet werden.
setzen.  
* Hierfür können die Zeiteinheiten sec(onds), min(utes), hour(s), day(s), week(s) und month(s) verwendet werden.
 
= TMP =
== Zuteilung des Plattenplatzes: quota ==
Quota dienen dazu, jedem Anwender und jeder Gruppe einen bestimmten Plattenspeicher zuzuteilen, der nicht überschritten werden darf.
* So kann man verhindern, dass eine Aushilfekraft Musikdateien aus dem Internet sammelt und die Finanzbuchhaltung zum Absturz bringt, weil für sie kein Platz mehr auf der Platte ist.
* Unabhängig von solchen Szenarien gibt es bei gesetzten Quota den psychologischen Effekt, dass die Benutzer merken, dass Plattenspeicher endlich ist.
* In den meisten Fällen werden sie einmal ihre Daten durchsortieren und überholte Daten löschen, bevor sie beim Administrator um weiteren Speicher bitten.
* Das wiederum entlastet auch die Datensicherung.
 
Mit drei Parametern wird eine Quotagrenze bestimmt: Softlimit, Hardlimit und Gnadenfrist (grace period).
* Das Softlimit darf zwar überschritten werden, aber nur für eine gewisse Zeit, die als Gnadenfrist bezeichnet wird.
* Das Hardlimit ist die Grenze, die der Benutzer nicht überschreiten darf.
* Alle drei Parameter gibt es zweimal, jeweils für die Anzahl der Blöcke und die Anzahl der Dateien.Genauer: die Anzahl der i-nodes.
 
Zur Installation muss der Kernel die Fähigkeit haben, mit Quota umzugehen.
* Das kann ggf. ein Neubilden des Kernels erforderlich machen.
 
In der Datei /etc/fstab wird hinterlegt, welche Dateisysteme durch Quota überwacht werden:
/dev/hda3/mount/hda3 ext2defaults,usrquota 1 1
 
In das Wurzelverzeichnis des Dateisystems müssen zwei Dateien gelegt werden.
* Im folgenden Beispiel ist das Wurzelverzeichnis /mount/hda3.
* Die Dateien heißen quota.user und quota.group.
* Letztere muss auch dann angelegt werden, wenn, wie in diesem Beispiel, gar keine Groupquota angelegt werden.
touch /mount/hda3/quota.user
touch /mount/hda3/quota.group
chmod 600 /mount/hda3/quota.user
chmod 600 /mount/hda3/quota.group
mount /dev/hda3 /mount/hda3 -o remount
 
Der Befehl touch legt eine leere Datei an, wenn noch keine Datei vorhanden ist.
* Anschließend werden die Rechte der Dateien auf 600 gesetzt.
* Das ist zwingend, damit nur root diese Dateien lesen und schreiben kann.
* Ansonsten arbeitet das Quota-System nicht.
* Zum Schluss wird ein Wiedereinhängen des Dateisystems gestartet, damit der Eintrag in der fstab gelesen wird.
 
Nun wird ermittelt, welche Benutzer wie viel Platz auf der Platte belegt haben.
* Dazu gibt es das Programm quotacheck:
quotacheck -avug /dev/hda3
 
Dieser Vorgang dauert eine Weile.
* Die quota.user wird mit Daten gefüllt.
* Anschließend kann man die Limits für die Benutzer einstellen.
edquota -u arnold


== Quota-Kommandos ==
edquota startet den Standardeditor (meist vi) mit folgenden Einträgen:
=== Quotaon und Quotaoff ===
 
Um Quota an- bzw. auszuschalten:
Quotas for user arnold:
sudo quotaon -a
/dev/hda3: blocks in use: 8117, limits (soft=0, hard=0)
sudo quotaoff -a
inodes in use: 470, limits (soft=0, hard=0)
 
Durch eine Änderung der Werte in den Klammern werden das Soft- und das Hardlimit des Benutzers für die jeweilige Platte eingestellt.


=== Quotacheck ===
edquota -t zur Einstellung der Gnadenfrist betrifft alle Benutzer gemeinsam:
Quotacheck scannt das Dateisystem nach der aktuellen Plattenauslastung:
  Time units may be: days, hours, minutes, or seconds
  sudo quotacheck -avugm
  Grace period before enforcing soft limits for users:
  quotacheck: Scanning /dev/sda1 [/] done
/dev/hda3: block grace period: 7 day, file grace period: 7 days
quotacheck: Checked 22685 directories and 177183 files


=== Repquota ===
Mit quotaon -a wird die Überwachung für alle gestartet, mit quotaoff -a wird sie wieder abgeschaltet.
Repquota liefert einen Bericht:
* Soll die Überwachung auch nach einem Reboot erfolgen, muss der Befehl in einer rc-Datei eingetragen werden.
sudo repquota /
*** Report for user quotas on device /dev/sda1
Block grace time: 7days; Inode grace time: 7days


                        Block limits                File limits
Ist das Quotasystem aktiv, erhält der Benutzer bei Überschreitung seines Limits eine Meldung am Bildschirm, und der Vorgang wird abgebrochen.
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      -- 3770548      0      0        198636    0    0
daemon    --      56      0      0              5    0    0
...
otto      +-  102524  95000  120000  6days      7    0    0


== Quellen ==
Die ständige Überprüfung aller Dateizugriffe darauf, ob eine Grenze überschritten wird, ist natürlich nicht kostenlos.
* Linux Quota mini-HOWTO 🇩🇪
* Quota belasten die Performance der Dateizugriffe.
* Ist die Zugriffsgeschwindigkeit ein wichtiges Kriterium, kann man durch Partitionieren erreichen, dass Benutzer nicht den wichtigen Anwendungen den Plattenplatz wegnehmen.
* Man braucht nur dafür zu sorgen, dass die betriebswichtigen Anwendungen ihre Daten auf einer eigenen Partition ablegen.
* Administrieren Sie eine Maschine mit vielen Benutzern, die sich als Sammler und Jäger im Internet betätigen und neben Bildern, mp3-Dateien nun auch digitale Filme entdecken, führt an der Einrichtung von Quota langfristig kein Weg vorbei.


[[Kategorie:Entwurf]]
[[Kategorie:Dateisystem]]

Aktuelle Version vom 12. November 2024, 18:44 Uhr

Disk Quota (englisch disk ‚Festplatte‘ und quota ‚Anteil‘, ‚Kontingent‘) sind Begrenzungen des Speicherplatzes auf Datenträgern für Benutzer oder Benutzergruppen

Beschreibung

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.
Wichtige Hinweise

Quota werden zurzeit für jede Partition separat ü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.

Einsatzgebiete

Viele Computerbesitzer wissen gar nicht, wie stark sie durch Quota eingeschränkt werden.

  • Ein anschauliches Beispiel sind die Internetprovider.
  • 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 groß das E-Mail-Verzeichnis der Kunden sein darf.

Quota kommt vorwiegend bei Servern zum Einsatz.

  • Denn nur dadurch lässt sich vermeiden, dass Benutzer zu viel auf dem Server ablegen und dadurch die Festplatte füllen.

Arten von Quota

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.

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.

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.

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 ein 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.

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.

Hardlimit

Ein Benutzer kann sein Hardlimit nicht überschreiten.

  • Es gibt keine Möglichkeit für den Benutzer, diese Limite zu umgehen.

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.

Installation

# apt install quota 

Optional

# apt install quotatool

Aufruf

Optionen

Parameter

Umgebung

Rückgabewert

Konfiguration

Das System auf Quota vorbereiten

Kernelkonfiguration

Bei der Kernelkonfiguration muss man auf die Frage mit »y« antworten.

Kompilieren und Installieren der Quota Software

Den Source von der Quota Software findet man unter [./Ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/ 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.

Anpassen der /etc/fstab

Auf einem System, auf dem Quota noch nie zum Einsatz kam, sieht die /etc/fstab normalerweise so aus: Falls man Benutzerquota einsetzen möchte, muss man die Option »usrquota« einsetzen; das Ergebnis könnte dann zum Beispiel so aussehen: Falls man Gruppenquota einsetzen möchte, muss man die Option »grpquota« einsetzen; das Ergebnis könnte dann zum Beispiel so aussehen: Falls beide obengenannten Optionen benötigt werden:

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: 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.

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.

Ä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: 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.

Dateien

Anwendung

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.

Vorbereitung

Zuerst muss mit der Platzverbrauch der einzelnen Benutzer erfasst werden.

  • Je nach Grösse der Partition(en) und dem belegten Speicherplatz kann dies unterschiedlich lange dauern.

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 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: Hier nun jede Zeile einzeln erklärt: Hier steht der Name des Benutzers, dessen Quota man gerade bearbeitet. 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. 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. Diese beiden Zeilen haben die gleiche Bedeutung wie die beiden anderen, beziehen sich jedoch auf eine andere Partition: in diesem Fall /dev/hda2.

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 auf.
  • Dann erscheint wieder der Editor; das sieht dann zum Beispiel so aus: Die Optionen sind dieselben wie oben, deshalb werde ich nicht noch einmal daraufeingehen.

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: 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.

Die Grace Period setzen

Zu guter letzt kann man noch die Grace Period setzen.

  • Dazu ruft man auf.
  • Dann gelangt man wieder in seinen Lieblingseditor und kriegt folgendes zu sehen: 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.

Starten und beenden der Quotaüberwachung

Manuell

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

Mit wird die Quotaüberwachung eingeschaltet, mit wird sie ausgeschaltet.

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: 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 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: Ab jetzt wird die Quotaüberwachung bei jedem Systemstart aktiviert.

Verschiedene Kommandos

Quota

Der Befehl quota ist für die Benutzer gedacht.

  • Damit können Sie sich ihren aktuellen Stand ansehen: 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: 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.

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.

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 Das führt zu folgender Ausgabe:

Quotaon und Quotaoff

Um Quota an- bzw. auszuschalten:

sudo quotaon -a
sudo quotaoff -a 

Quotacheck

Quotacheck scannt das Dateisystem nach der aktuellen Plattenauslastung:

sudo quotacheck -avugm 
quotacheck: Scanning /dev/sda1 [/] done
quotacheck: Checked 22685 directories and 177183 files

Repquota

Repquota liefert einen Bericht:

sudo repquota / 
*** Report for user quotas on device /dev/sda1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      -- 3770548       0       0         198636     0     0
daemon    --      56       0       0              5     0     0
...
otto      +-  102524   95000  120000  6days       7     0     0

Sicherheit

Dokumentation

RFC

Man-Page

Info-Pages

Siehe auch

Links

Projekt-Homepage

Weblinks

  1. http://www.linuxhaven.de/dlhp/HOWTO/mini/DE-Quota-HOWTO.html



TMP

Als Administrator möchte man eventuell nicht, dass die Benutzer zu viel Festplatten-Speicherplatz verbrauchen.

  • Ist beispielsweise der Speicherplatz der Home-Partition vollständig aufgebraucht, so können sich die Benutzer oftmals nicht einmal mehr am grafischen X-Desktop anmelden, da hierbei Dateien erstellt werden müssen.
  • Des Weiteren läuft ein System langsamer, wenn eine Festplatte, die gebraucht wird, "randvoll" ist.
  • Abhilfe schafft hier das Programm Quota.

Quota erlaubt es, den Festplattenspeicher eines Systems spezifisch einzuschränken.

  • Alle in der /etc/fstab [4] gelisteten Geräten und Partitionen können beschränkt werden, solange diese beschreibbar und in einem gängigen Linux-Dateisystem vorliegen.
  • Jedes dort gelistete Gerät und jede Partition kann individuell für einzelne Benutzer oder auch für ganze Gruppen eingeschränkt werden.
  • Die Einschränkung kann sich sowohl auf den Festplatten-Speicherplatz beziehen, welcher zur Verfügung gestellt werden soll, als auch auf die Anzahl an Daten (inklusive Ordner), die angelegt werden dürfen.
  • Man kann darüber entscheiden, ob neben dem Verhindern einer weiteren Speicherplatz-Vergabe weitere Aktionen ausgeführt werden sollen, etwa das Benachrichtigen der betroffenen Person per E-Mail.
  • Quota funktioniert, ganz gleich ob der Benutzer lokal am Rechner arbeitet oder von extern, z. B.  per SSH oder FTP auf diesen zugreift.

Hinweis:

Die ständige Überprüfung aller Dateizugriffe daraufhin, ob eine Grenze überschritten wird, ist natürlich nicht ohne Folgen.

  • Quota belastet die Leistung der Festplatte.
  • Ist die Zugriffsgeschwindigkeit ein wichtiges Kriterium, kann man durch Partitionieren erreichen, dass Benutzer nicht den wichtigen Anwendungen den Plattenplatz wegnehmen.
  • Daher sollte man Quota nur auf Partitionen aktivieren, auf denen Benutzer ihre Daten ablegen.

Wie funktioniert Quota?

Quota wird nach der Installation vom System als Dienst ausgeführt.

  • Es wird standardmäßig beim Booten geladen und muss daher nicht explizit gestartet werden.
  • Nach dem Hochfahren wertet das Programm einige Dateien aus und sorgt nun selbstständig dafür, dass die Benutzer oder Gruppen nicht zu viel Speicherplatz in Anspruch nehmen.

Im Folgenden werden einige Begriffe erklärt, die man verstehen sollte, wenn man Quota verwenden will.

Number of Disk Blocks und Number of Inodes

Ein Speicherplatz-Limit wird an der Stelle "Number of Disk Blocks" gesetzt, die Einheit eines Disk Blocks ist dabei ein Kilobyte.

  • Ein Datei-Anzahl-Limit wird an der Stelle "Number of Inodes" gesetzt.

Under Quota

"Under Quota" bezeichnet den Zustand, welchen ein Benutzer oder eine Gruppe aus der Sicht von Quota hat, wenn der Umfang des verbrauchten Speicherplatzes und die Anzahl seiner angelegten Dateien sowohl das "Soft Limit" als auch das "Hard Limit" unterschreiten.

Limits

Hinweis:

Die Limits werden in Dateisystemblöcken festgesetzt.

  • Wie groß die Blocke sind, findet man mit den jeweiligen Verwaltungstools zum Dateisystem heraus, beispielsweise tune2fs für ext-Dateisysteme.
Hard Limit

"Hard Limit" gibt den maximal zur Verfügung gestellten Speicherplatz oder die maximale Dateianzahl an.

  • Der Benutzer kann dieses Limit nie überschreiten.
  • Sollte er an dieses Limit stoßen, so hat es für ihn den gleichen Effekt, als wäre kein weiterer Speicherplatz auf der Partition vorhanden.

Hinweis:

Befindet sich ein Benutzer nahe am durch Quota gesetzten Hard Limit, so kann er sich eventuell nicht einmal mehr an der grafischen Oberfläche anmelden, da hierfür Speicherplatz für neu erstellte Dateien gebraucht wird.

  • In dem Fall kann nur noch der Administrator durch eine Erweiterung des Hard Limits helfen, oder der User loggt sich in ein System-Terminal und löscht von dort Dateien.
Soft Limit

"Soft Limit" ist eine Begrenzung, welche kleiner oder gleich dem Hard Limit gesetzt werden muss.

  • Wird das Soft Limit überschritten, so erhält der Benutzer den Zustand "Over Quota".
  • Das Soft Limit kann bis zum Wert des Hard Limits überschritten werden, was allerdings mit Konsequenzen verbunden ist, welche vom Administrator bestimmt werden.

Ist die Verwendung eines Soft Limits nicht erwünscht, so werden die Limit-Werte von Soft Limit gleich denen von Hard Limit gesetzt.

Grace Period

Ist ein Benutzer Over Quota, hat also das Soft Limit überschritten, so erhält er eine Frist, die "Grace Period" genannt wird.

  • Standardmäßig beträgt sie sieben Tage, kann aber frei vom Administrator gewählt werden.
  • Während dieser Frist muss der Benutzer oder die Gruppe durch Verlagern, Löschen oder Komprimieren von Dateien den verbrauchten Speicherplatz wieder soweit reduzieren, dass der Under Quota Zustand erreicht wird.

Um sicherzugehen, dass sie von dem Umstand in Kenntnis gesetzt werden, können Administrator, Benutzer oder Gruppe über das Vorkommnis per E-Mail oder System-Mail informiert werden.

Sollte der Benutzer die Frist von Grace Period versäumen, so nimmt sein derzeitig verbrauchter Speicherplatz das Hard Limit ein.

  • Der Benutzer kann nun nicht mehr produktiv arbeiten und muss sich nun an den Administrator wenden, damit dieser ihm entweder die Frist verlängert, das Hard Limit etwas erhöht oder selber Dateien löscht.
Grafik

Hier eine kleine Grafik, um die ganze Sache an einem Beispiel grafisch zu erläutern.

quota_grafika.png

Auf der Partition /dev/sda2, welche als /home eingehängt wird, wird der Speicherplatz vom User Jan eingeschränkt.

  • Sein Speicherplatz ist aufgeteilt in Under Limit und Soft Limit.
  • Hard Limit stellt die ihm gesetzte Grenze dar.

Konfiguration

fstab einstellen

Im Folgenden wird anhand des oben grafisch dargestellten Beispiels erklärt, wie man nun eine konkrete Einschränkung vornimmt, und werden alternative Einstellmöglichkeiten aufgezeigt.

Nach der Installation muss als erstes die Datei /etc/fstab mit Root-Rechten in einem Texteditor geöffnet werden.

  • Hier müssen nun die Dateisysteme gekennzeichnet werden, auf welchen Orte eingeschränkt werden sollen, damit Quota weiß, was kontrolliert werden soll.

Hier eine Passage einer /etc/fstab, in welcher die /home-Partition gemountet wird.

  • Dort liegt der Ordner ./Jan, welcher beispielshalber eingeschränkt wird:
# Entry for /dev/sda2 :
UUID=a2798917-95d8-4805-aa4d-d06fa863a67c /home ext3 relatime 0 2

Damit Quota auf ein Dateisystem aufmerksam wird, müssen nun dieser Zeile ein oder zwei Attribute zugefügt werden [2]:

  • usrquota - Hiermit können Einschränkungen für einzelne Benutzer eingerichtet werden.
  • grpquota - Hiermit können Einschränkungen für ganze Gruppen eingerichtet werden.

Im Beispiel, wo später der Benutzer "Jan" eine Einschränkung erfahren soll, sieht die Zeile dann folgendermaßen aus:

# Entry for /dev/sda2 :
UUID=a2798917-95d8-4805-aa4d-d06fa863a67c /home ext3 relatime,usrquota 0 2
Hinweis

Es ist auch möglich, auf der gleichen Partition Einschränkungen sowohl für Benutzer als auch für Gruppen gleichzeitig zu setzen.

  • In diesem Fall fügt man einfach beide Attribute, durch Komma getrennt, an.

Nun muss das Dateisystem neu eingehängt werden.

  • Wurde (wie in diesem Beispiel) das /home-Verzeichnis oder gar das Wurzelverzeichnis selber mit einem Attribut erweitert, funktioniert dies in der Regel nur durch einen Computer-Neustart.
  • Für das /home-Verzeichnis kann man sich allerdings auch einfach aus allen bestehenden Benutzersitzungen abmelden und dann mit Strg + Alt + F1 in eine Textkonsole wechseln.
  • Dort meldet man sich nun als root an und führt das Kommando init 1 aus.
  • Dadurch wird das Betriebssystem vom Mehrbenutzerbetrieb in den Einzelbenutzerbetrieb geschaltet.
  • Da root seine Partition auf /root und nicht auf /home hat, kann man nun die /home-Partition aushängen und wieder erneut einhängen.
  • Anschließend wechselt man wieder mit init 3 in den Mehrbenutzermodus, meldet sich aus dem root-Konto ab und wechselt mit Strg + Alt + F7 wieder auf den grafischen Anmeldebildschirm.
Hinweis

Für diese Prozedur muss für root ein Passwort gesetzt sein. Automatisches Erstellen der Dateien aquota.user beziehungweise aquota.group

Damit Quota funktionieren kann, müssen Informationen über die Datei-Rechte der einzelnen Benutzer und Gruppen auf der einzuschränkenden Partition gesammelt werden.

  • Diese Informationen werden in Dateien namens quota.user und / oder quota.group in den jeweiligen Orten gespeichert.

Hierfür führt man als Root folgenden Befehl aus

# quotacheck OPTIONEN 

Optionen

Option Beschreibung
-a für all, also für alle zu überwachenden Dateisysteme aus der /etc/fstab
-c für create, also Schreiben der Dateien auf die Festplatte
-f für force, also Erzwingen der Operation
-M try-remount, führt die Operation gegebenenfalls ohne Remount durch
-u für das Erstellen der aquota.user Datei, falls erforderlich
-g für das Erstellen der aquota.group Datei, falls erforderlich

In diesem Beispiel findet man nun im /home-Verzeichnis eine Datei aquota.user vor, die ja für diesen Nutzer angelegt wurde.

Abschließend

Jetzt muss Quota neu gestartet werden:

sudo /etc/init.d/quota restart 

Um den Zugriff auf die Quota-Einträge für Benutzer und Gruppen nur dem root-Nutzer zu erlauben, ist Folgendes auszuführen:

sudo chmod 600 /quota.* 

Die korrekte Funktionalität kann nun getestet werden.

  • Folgender Befehl gibt eine Ansicht der Quota-Informationstabelle für Benutzer und Gruppen aus:
sudo repquota / 

Hierbei bitte beachten, dass noch keine Quotas gesetzt sind.

Einstellungen

Einen User einschränken

Am Beispiel des Benutzers "otto" soll erklärt werden, wie man einen einzelnen Benutzer im Platzverbrauch auf der Festplatte einschränken kann.

  • Der Befehl [3]
# Allgemein
sudo edquota -u <benutzername>
# Beispiel
sudo edquota -u otto 

öffnet einen Editor, um die Quota für den Benutzer otto und alle Partitionen, für die Quota aktiviert wurde, zu editieren:

Disk quotas for user otto (uid 1001):
     Filesystem                   blocks       soft       hard     inodes     soft    hard
     /dev/hda2                        28     100000     102400          7        0       0

"blocks" zeigt die durch den User otto verwendeten Blöcke (in kB) für diese Partition an; "inodes" zeigt die Anzahl der Dateien an, die dem User otto gehören. Ändern sollte man nur die Werte soft und hard, die das Soft Limit und Hard Limit festlegen. Eine Gruppe einschränken

Mittels des Befehls [3]

# Allgemein
sudo edquota -g <gruppenname>
# Beispiel
sudo edquota -g users 
Disk quotas for group users (gid 999):
     Filesystem                   blocks       soft       hard     inodes     soft    hard
     /dev/hda3                       549     200000     204800         57        0       0

editiert man die Einstellungen für eine Gruppe.

Mehrere User einschränken

Möchte man Werte für Quota für alle Benutzer des Systems setzen, so kann man sich eines kleinen Shellskriptes behelfen.

  • Zuerst setzt man die Quota-Werte bei einem Benutzer, beispielsweise wieder "otto".
  • Danach führt man in einem Terminal [3]
sudo edquota -p otto `awk -F: '$3 > 1000 {print $1}' /etc/passwd` 

aus.

  • Dies überträgt die bei "otto" gesetzten Quota-Einstellungen auf alle lokalen Benutzer (also alle Benutzer mit einer Benutzer-ID, die größer als 1000 ist).

Grace Period setzen

Die Grace Period kann man mittels

sudo edquota -t 
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
  Filesystem             Block grace period     Inode grace period
  /dev/hda3                     1day                   1day

setzen.

  • Hierfür können die Zeiteinheiten sec(onds), min(utes), hour(s), day(s), week(s) und month(s) verwendet werden.

TMP

Zuteilung des Plattenplatzes: quota

Quota dienen dazu, jedem Anwender und jeder Gruppe einen bestimmten Plattenspeicher zuzuteilen, der nicht überschritten werden darf.

  • So kann man verhindern, dass eine Aushilfekraft Musikdateien aus dem Internet sammelt und die Finanzbuchhaltung zum Absturz bringt, weil für sie kein Platz mehr auf der Platte ist.
  • Unabhängig von solchen Szenarien gibt es bei gesetzten Quota den psychologischen Effekt, dass die Benutzer merken, dass Plattenspeicher endlich ist.
  • In den meisten Fällen werden sie einmal ihre Daten durchsortieren und überholte Daten löschen, bevor sie beim Administrator um weiteren Speicher bitten.
  • Das wiederum entlastet auch die Datensicherung.

Mit drei Parametern wird eine Quotagrenze bestimmt: Softlimit, Hardlimit und Gnadenfrist (grace period).

  • Das Softlimit darf zwar überschritten werden, aber nur für eine gewisse Zeit, die als Gnadenfrist bezeichnet wird.
  • Das Hardlimit ist die Grenze, die der Benutzer nicht überschreiten darf.
  • Alle drei Parameter gibt es zweimal, jeweils für die Anzahl der Blöcke und die Anzahl der Dateien.Genauer: die Anzahl der i-nodes.

Zur Installation muss der Kernel die Fähigkeit haben, mit Quota umzugehen.

  • Das kann ggf. ein Neubilden des Kernels erforderlich machen.

In der Datei /etc/fstab wird hinterlegt, welche Dateisysteme durch Quota überwacht werden:

/dev/hda3/mount/hda3 ext2defaults,usrquota 1 1

In das Wurzelverzeichnis des Dateisystems müssen zwei Dateien gelegt werden.

  • Im folgenden Beispiel ist das Wurzelverzeichnis /mount/hda3.
  • Die Dateien heißen quota.user und quota.group.
  • Letztere muss auch dann angelegt werden, wenn, wie in diesem Beispiel, gar keine Groupquota angelegt werden.
touch /mount/hda3/quota.user
touch /mount/hda3/quota.group
chmod 600 /mount/hda3/quota.user
chmod 600 /mount/hda3/quota.group
mount /dev/hda3 /mount/hda3 -o remount 

Der Befehl touch legt eine leere Datei an, wenn noch keine Datei vorhanden ist.

  • Anschließend werden die Rechte der Dateien auf 600 gesetzt.
  • Das ist zwingend, damit nur root diese Dateien lesen und schreiben kann.
  • Ansonsten arbeitet das Quota-System nicht.
  • Zum Schluss wird ein Wiedereinhängen des Dateisystems gestartet, damit der Eintrag in der fstab gelesen wird.

Nun wird ermittelt, welche Benutzer wie viel Platz auf der Platte belegt haben.

  • Dazu gibt es das Programm quotacheck:
quotacheck -avug /dev/hda3

Dieser Vorgang dauert eine Weile.

  • Die quota.user wird mit Daten gefüllt.
  • Anschließend kann man die Limits für die Benutzer einstellen.
edquota -u arnold

edquota startet den Standardeditor (meist vi) mit folgenden Einträgen:

Quotas for user arnold:
/dev/hda3: blocks in use: 8117, limits (soft=0, hard=0)
inodes in use: 470, limits (soft=0, hard=0)

Durch eine Änderung der Werte in den Klammern werden das Soft- und das Hardlimit des Benutzers für die jeweilige Platte eingestellt.

edquota -t zur Einstellung der Gnadenfrist betrifft alle Benutzer gemeinsam:

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

Mit quotaon -a wird die Überwachung für alle gestartet, mit quotaoff -a wird sie wieder abgeschaltet.

  • Soll die Überwachung auch nach einem Reboot erfolgen, muss der Befehl in einer rc-Datei eingetragen werden.

Ist das Quotasystem aktiv, erhält der Benutzer bei Überschreitung seines Limits eine Meldung am Bildschirm, und der Vorgang wird abgebrochen.

Die ständige Überprüfung aller Dateizugriffe darauf, ob eine Grenze überschritten wird, ist natürlich nicht kostenlos.

  • Quota belasten die Performance der Dateizugriffe.
  • Ist die Zugriffsgeschwindigkeit ein wichtiges Kriterium, kann man durch Partitionieren erreichen, dass Benutzer nicht den wichtigen Anwendungen den Plattenplatz wegnehmen.
  • Man braucht nur dafür zu sorgen, dass die betriebswichtigen Anwendungen ihre Daten auf einer eigenen Partition ablegen.
  • Administrieren Sie eine Maschine mit vielen Benutzern, die sich als Sammler und Jäger im Internet betätigen und neben Bildern, mp3-Dateien nun auch digitale Filme entdecken, führt an der Einrichtung von Quota langfristig kein Weg vorbei.