Quotas einrichten

Dieses Wochenende habe ich die ganze Struktur meiner Sambashares meines Servers (Debian Lenny 5.0) überarbeitet. User gelöscht und hinzugefügt, Rechte geändert. Dabei musste ich auch die Quotas neu erstellen und habe gleich ein einfaches Minihowto geschrieben.

Die Quotas kommen bei mir auf einem Sambaserver zum Einstatz. Es dürfen verschiedene Benutzer Daten auf den Server hochladen und damit mir niemand den Server ausversehen oder gewollt zumüllen kann werden Quotas konfiguriert. Quotas ergeben auch anderswo Sinn, zum Beispiel bei Homeverzeichnissen.

Etwas vornweg: Quotas können nur auf Partitionen und nicht auf Ordner gesetzt werden! Die Quotas gelten für eine Partition! Los gehts.

Quota installieren

aptitude install quota

Die /etc/fstab anpassen (Userquota und Gruppenquota)

/dev/sda1      /media/partition    ext3    defaults,usrquota,grpquota              0       1

Die Partition remounten um Quotas zu aktivieren

mount /media/partition -o remount

Aktueller Platzverbrauch der einzelnen Benutzer analyisieren. Dies ging bei 985GB ca. 15min

quotacheck -vuq /media/partition

Beim ersten Mal werden ein paar Fehlermeldungen gezeigt, dies ist normal weil es der erste Check ist

quotacheck -vug /media/partition/
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sda1 [/media/partition] done
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Checked 20521 directories and 80591 files
quotacheck: Old file not found.
quotacheck: Old file not found.

Danach wird es auf der Partition die Files aquota.group und aquota.user geben mit den Rechten 600.

Jetzt schränke ich den Benutzer restricted auf ca. 14.6GB ein. Die Soft- und Hardlimite ist die gleiche, weil ich den Benutzer nicht benachrichtigen will, dass er zu viel Speicherplatz benutzt und ich ihm auch nicht die Möglichkeit geben will, Daten zu löschen um unter die Softlimite zu kommen. Ich möchte ja nur erreichen, dass er das Sambashare nicht zumüllen kann.

edquota -u restricted
Disk quotas for user restricted (uid 1020):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sda1                        0   15000000   15000000          0        0        0

Nun müssen die Quotas noch angeschaltet werden

quotaon -vug

Wenn ich das Sambashare mit dem Benutzer restricted im Windows mounte stehen mir nun 14.6GB zur Verfügung und nicht mehr. Schon sind die Quotas schnell und simpel eingerichtet!

Folgend noch ein paar Befehle zum Thema:
Quotas ausschalten

quotaoff -vug

Eine Gruppe einschränken

edquota -g Gruppe

Grace Period ändern

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/sda1                    7days                  7days

Aktuellen Report der Quotas anzeigen

repquota /media/partition/
*** 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      --  229228       0       0             15     0     0
noquota -- 602825256       0       0          84026     0     0
restricted --  820844 15000000 15000000            186     0     0

 
File Quota
Auch File Quotas sind möglich. Dabei wird die Anzahl der Dateien und Verzeichnisse beschränkt, wie gross diese sind ist egal. Die letzten beiden Zahlen bei edquota -u Benutzer oder edquota -g Gruppe müssen angepasst werden. Natürlich können die beiden Typen von Quotas (Grösse und Anzahl) auch kombiniert werden.

Soft-, Hardlimit und die Grace Period
Ich versuche die drei Begriffe anhand eines Beispiels zu erklären. Wir nehmen an: Softlimit = 50MB, Hardlimit = 60MB und Grace Period = 7 days.

Ein Benutzer füllt sein Verzeichnis zum Beispiel mit 55MB. Nun wird der Benutzer benachrichtigt, dass er das Softlimit von 50MB überschritten hat und in den nächsten 7 Tagen Daten löschen soll, damit er wieder unter die Softwarelimit von 50MB kommt. Kommt er dieser Warnung innert 7 Tagen nicht nach und löscht keine Daten nimmt der aktuell belegte Platz die Hardlimit ein, in diesem Fall 55MB. Jetzt kann er nur noch Daten löschen und muss unter die Softlimit von 50MB kommen. Die Hardlimit von 60MB kann nie überschritten werden! Wenn der Benutzer sein Verzeichnis am ersten Tag füllt kann er es nicht mehr als 60MB füllen.

Weitere Links:

1 Antwort

Hinterlassen Sie einen Kommentar

Wollen Sie an der Diskussion teilnehmen?
Wir freuen uns über ihren Beitrag!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *