Speicherplatz der Benutzer mit Quotas einschränken
Mit Hilfe von Quotas kann der Speicherplatz, welchen die Benutzer zur Verfügung haben, eingeschränkt werden. Dazu muss die Quota Option in der Kernelkonfiguration vorhanden sein:
options QUOTA
Ist die Option noch nicht vorhanden, muss der Kernel neu gebaut werden:
# cd /usr/src && make kernel KERNCONF=<Name der Kernelkonfiguration>
Nun können die Quotas in der /etc/rc.conf aktiviert werden. Normalerweise werden die Quotas beim Systemstart überprüft. Da die Überprüfung unter Umständen einige Zeit in Anspruch nehmen kann, kann sie mit check_quotas="NO" in der rc.conf deaktiviert werden:
# echo 'enable_quotas="YES"' >> /etc/rc.conf # echo 'check_quotas="NO"' >> /etc/rc.conf
In der /etc/fstab kann nun festgelegt werden, auf welchen Dateisystemen Quotas eingerichtet werden sollen. Möchte man die Quotas pro Benutzer aktivieren, benutzt man die Option userquotas, für Gruppen groupquota:
# cat /etc/fstab # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1b none swap sw 0 0 /dev/ad0s1a / ufs rw 1 1 /dev/ad0s1e /tmp ufs rw 2 2 /dev/ad0s1f /usr ufs rw 2 2 /dev/ad0s1g /usr/home ufs rw,userquota 2 2 /dev/ad0s1d /var ufs rw 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 0
Nun muss die Maschine neu gestartet werden, um den neuen Kernel zu laden und die Quotas zu aktvieren:
# shutdown -r now
Ist die Maschine neu gestartet, können die Quotas für die Benutzer festgelegt werden. Dazu verwendet man die -u Option von edquota. Sollen die Quotas pro Gruppe festgelegt werden, verwendet man die -g Option:
# edquota -u test edquota: creating quota file /usr/home/quota.user
Nun wird ein Texteditor geöffnet. Damit können die Limits für den verwendeten Speicherplatz und/oder die belegten Inodes gesetzt werden. Das Soft-Limit kann vom Benutzer für eine gewisse Zeit (normalerweise 7 Tage) überschritten werden, das Hard-Limit kann nicht überschritten werden:
Quotas for user test: /usr/home: kbytes in use: 0, limits (soft = 1024000, hard = 2048000) inodes in use: 0, limits (soft = 1024, hard = 2048)
Nach dem Speichern der Datei kann die aktuelle Quota-Konfiguration abgerufen werden:
# quota -v test Disk quotas for user test (uid 1001): Filesystem usage quota limit grace files quota limit grace /usr/home 20 1024000 2048000 10 1024 2048
Überschreitet der Benutzer das Soft-Limit, wird die Zeit, wie lange das Soft-Limit noch überschritten werden kann, angezeigt:
# quota -v test Disk quotas for user test (uid 1001): Filesystem usage quota limit grace files quota limit grace /usr/home 1152644* 1024000 2048000 7days 13 1024 2048
Das Hard-Limit kann nicht überschritten werden:
# quota -v test Disk quotas for user test (uid 1001): Filesystem usage quota limit grace files quota limit grace /usr/home 2047974* 1024000 2048000 7days 15 1024 2048 # cp /tmp/ports.tar.gz ~ /usr/home: warning, user disk quota exceeded /usr/home: write failed, user disk limit reached cp: ports.tar.gz: Disc quota exceede
Mehr Informationen zu Quotas findet man in den Manpages quota(1) und edquota(8).