Revamp LTSP: Disk Quotas

From revampedia

Gemäss Admin-Sitzung und Planung (siehe Doku) wollen wir den nutzbaren Platz in den home Verzeichnissen Begrenzen.

Stichwort: "Disk quota"

Resourcen: https://www.debian-administration.org/article/47/Limiting_your_users_use_of_disk_space_with_quotas

Auslegung: 100 GB auf 50 Benutzer --> 2GB pro Benutzer

Einrichtung

Vorgehen gem.: https://wiki.archlinux.org/index.php/Disk_quota

usrquota als Mount Option in der fstab eingetragen

/dev/xvda4 /home ext4 nodev,nosuid,usrjquota=aquota.user,jqfmt=vfsv0 0 1

Home remounten:

# mount -vo remount /home

Quotaindex erstellen:

 # quotacheck -vgum /home

Aktivieren: (Dies sollte von der systemd Einheit quota.service beim booten erledigt werden. Jetzt manuell gemacht da nicht neugestartet.)

# quotaon -av

Modul quota_v2 --> ist dieses noch nötig ? --> wird es beim boot automatisch geladen ?

Konfiguration

Quotas festlegen

# edquota $USER

Am besten wird ein extra Benutzer für quotas festgelegt. quotas können dann an diesem eingestellt werden.

quotauser (als systembenutzer) erstellt.

quota für quotauser festlegen.

# edquota quotauser
Disk quotas for user quotauser (uid 999):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/xvda4                        0    2000000    2100000          0        0        0

Bemerkung: Der Benutzer muss ein homedirectory unter /home haben, damit er von repquota angezeigt wird.

quotas von diesem Benutzer kopieren:

# edquota -p quotauser <username>

Diesen in /etc/adduser.conf eintragen:

QUOTAUSER="quotauser"

Sortierte Ausgabe von repquota

Befehl zum Anzeigen der quotas, Benutzer mit der höchsten Belegung am Ende der Liste:

# repquota -s /home | sort -hk3

warnquota

Am liebsten ist es uns, wenn unsere Benutzer benachrichtigt werden, sobald sie ihre softlimits übersteigen. Sonst merken wir es ja erst, wenn sie sich beschweren, dass sie sich nicht mehr anmelden können.

Bei Debian ist zum Glück normalerweise ein Eintrag in /etc/cron.daily vorhanden, der /usr/sbin/warnquota aufruft. Diesen muss man nur in /etc/default/quota aktivieren:

# Set to "true" if warnquota should be run in cron.daily
run_warnquota=true

Den Text des Emails und Weiteres kann man in /etc/warnquota.conf anpassen.

; ; and # type comments are allowed
# and even blank lines

# values can be quoted:
MAIL_CMD        = "/usr/sbin/sendmail -t"
FROM            = "root@localhost"
# but they don't have to be:
SUBJECT         = Dir geht bald der Speicherplatz aus!
CC_TO           = "administration@emaildomain.tld"
SUPPORT         = "bluemchen@emaildomain.tld"
PHONE           = "1100101"
#
CHARSET         = UTF-8
MESSAGE         = Hallo %i, ich habe festgestellt, dass dir langsam\
 der Speicherplatz ausgeht. Schau mal, ob du irgendwo grosse Dateien hast,\
 die eigentlich am besten in auf einem externen Speichermedium gespeichert werden sollten,\
 und leere bitte deinen Papierkorb und Browser Caches.|

Damit die Emails nicht nur auf das lokale Benutzerkonto, wo sie sowieso niemand liest, geschickt werden, müssen wir /etc/aliases anpassen, z.B.:

User: Emailadresse

fbar: foo.bar@emaildomain.tld
achains: alice@wonderland.bt
bjindal: bobby.jindal@whitehouse.gov
ctevez: carlos.tevez@whufc.co.uk

Und so weiter.

Eventuell muss der Mail-Transport-Agent (MTA) noch konfiguriert werden, um Emails zu anderen Domains schicken zu können.

Bei Debian verwenden wir exim4, den wir wie folgt konfigurieren:

dpkg-reconfigure exim4-config

Auswahl:

  • Internet site
  • System mail name:
    • FQDN mit gültigem reverse-Eintrag, damit die Emails auch vom Email-Server empfangen werden
  • IP-addresses to listen on:
  • 127.0.0.1 ; ::1
    • Nur von localhost Emails akzeptieren
  • Other destinations
  • Leer lassen
  • Domains to relay mail for:
  • Leer lassen
  • Machines to relay mail for:
  • Leer lassen
  • Keep number of DNS-queries minimal (Dial-on-Demand)
  • Nein
  • Delivery method for local mail:
  • Nach Belieben, normalerweise mbox
  • Split configuration into small files:
  • Nach Belieben