Quota für Benutzer und Gruppen
Rest siehe bitte die entsprechenden ManPages.
Generelles
Quotas gehen am einfachsten pro DateiSystem. Daher sollte man ggf. die Bereiche für /home (dort will man evtl. Benutzer-Quota haben) und die Bereiche für z.B. /gruppen (dort liegen z.B. Daten der Arbeitsgruppen) auf unterschiedliche DateiSysteme legen. So kann man bei Bedarf usrquota für /home und grpquota für /gruppen aktivieren - dies hat den Vorteil, dass eine als user.gruppe erzeugte Datei unter /home nur zur usrquota zählt und unter /gruppen nur zur grpquota.
Sind beide Verzeichnisse auf einem Filesystem, zählt die Datei zu beiden Quotas. Wenn einzelne Benutzer in ihren Gruppen wesentlich mehr Speicher verwenden dürfen sollen als alleine,(Messdaten etc.) muss man dann ggf. tricksen (z.B. mit Samba oder sgid (s.u.)).
Wenn man private Gruppen verwendet, könnte man auch beides auf ein Dateisystem legen. Dann braucht man nämlich bloß grpquota.
- Für /home nur grpquota zu verwenden ist aber u.U. auch nicht zu empfehlen. (Private) SGID Gruppenverzeichnisse könnten von einem Benutzer zugemüllt werden. Das wär vielleicht noch verschmerzbar weil ein Gruppenmitglied den Müll auch wieder beseitigen könnte. Aber Benutzer können per chgrp auch im privaten Bereich ihrer Homeverzeichnisse Sachen auf "grpquota", dessen Mitglied sie sind, speichern.
/etc/fstab für Benutzer- und Gruppen-Quota
/dev/hda2 /home ext3 defaults,usrquota 1 1 /dev/hda3 /gruppen ext3 defaults,grpquota 1 1
Quota-Dateien generieren / updaten
Einmalig bzw. beim Systemboot (Warnungen des Kommandos genau lesen!):
quotacheck -avug # erzeugen / auffrischen der Quota-Datenbank
crontab:
0 3 * * 0 /sbin/quotacheck -avug
Quota zuweisen
# Benutzer-Quota: edquota -u maier # Gruppen-Quota: edquota -g verkauf # Verwenden eines Muster-Benutzers (die anderen bekommen die gleichen Einstellungen): edquota -p musteruser andereruser # alle User mit UID >= 500 bekommen die gleichen Settings wie musteruser: edquota -p musteruser `awk -F: '$3 > 499 {print $1}' /etc/passwd` # grace time setzen (7 Tage sind OK) edquota -t
Quota aktivieren
quotaon -avug
Quota-Reporte erstellen
Eignet sich auch gut als crontab-Eintrag für regelmäßige Reports via Mail:
repquota -aug
usrquota und grpquota auf einem Filesystem und Samba
Hat man usrquota,grpquota auf einem Filesystem, kann man (wenn sonst nichts dagegen spricht) mit
[verkauf] # ... path = /daten/verkauf allowed users = @verkauf force user = nobody
nur die Mitglieder der Gruppe verkauf dort zulassen, es aber dem Erzeuger "wegnehmen" und User nobody geben - dadurch wird das Konto des Dateierzeugers entlastet.
Es bietet sich auch an, entsprechende sgid-Bits zu setzen und Gruppenzugehörigkeit:
chown -R nobody.verkauf /daten/verkauf chmod -R g+rwX /daten/verkauf find /daten/verkauf -type d -exec chmod g+s {} \;
Man hüte sich in dieser Konstellation vor Sambas force group:
force group = verkauf - dies forciert erst die Gruppe auf verkauf und checkt dann erst allowed users - passt also immer. Klasse. 8-(
force group = +verkauf - soll laut Doku richtig funktionieren - ungetestet.
Entsprechendes gilt dann auch für die Home-Verzeichnisse:
[home] # ... create mode = 0711 directory mode = 0711 force group = nogroup
Damit kann man es der Gruppe des Erzeugers "wegnehmen" und Gruppe nogroup geben - dadurch wird das Gruppen-Konto der Gruppe des Dateierzeugers entlastet.