Zum Inhalt springen

Quota/Konfiguration

Aus Foxwiki

Quota/Konfiguration

Beschreibung

Aktivieren Sie Quoten für das gewünschte Dateisystem in /etc/fstab, indem Sie usrquota oder grpquota zu den Mount-Optionen hinzufügen

  • Um etwa Benutzerquoten für die Root-Partition zu aktivieren, suchen Sie die Zeile für / und fügen Sie usrquota zu den Optionen hinzu
Wichtig
Sie müssen das Dateisystem neu mounten, damit die Änderungen wirksam werden, oder das System neu starten
sudo mount -o remount,usrquota /

Vorbereitungen

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

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:

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

quotacheck

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

sudo 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

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

Dateien

Datei Beschreibung
/etc/fstab Quota beim Systemstart aktivieren