Attivare le quote su un filesystem
File System |
Sommario |
Introduzione
In questo articolo vedremo come attivare il supporto per le quote.
A cosa servono le quote?. Nel caso di sistemi con più utenti, il loro utilizzo è utile perché permette di impedire che pochi utenti occupino tutto lo spazio disponibile, a discapito degli altri.
Servono a limitare lo spazio di disco che gli utenti (es. max 500MB) ma anche il numero massimo di file/directory che possono creare. Questo perché anche i file vuoti occupano spazio su disco. Le quote si possono, quindi, impostare per:
- limitare il numero di file e directory (numero di inode)
- limitare lo spazio disco (numero di blocchi)
La limitazione può essere per utente e per gruppo. La limitazione per gruppo si riferisce allo spazio occupato/numero di file o directory, complessivo di tutti i membri dello stesso gruppo. Se vogliamo che ciascun utente di uno stesso gruppo (es. Studenti) abbia una identica policy di quota dobbiamo allora definire la quota per un utente qualsiasi del gruppo e poi "propagarla" (v. avanti) a tutti i restanti membri.
Nell'uso di quota sono definiti tre attributi:
- Limite soft (es. 100MB): soglia di warning (l'utente riceve un warning al login e in email)
- Periodo di grazia (es. 7giorni): durata di tempo concessa all'utente per liberare spazio sulla sua home
- Limite hard (es. 500MB): soglia massima (l'utente non può più loggarsi)
Requisiti
Occorre che il kernel abbia il supporto per le quote. I kernel precompilati hanno tale supporto. Se invece state usando un kernel compilato da voi, assicuratevi di aver incluso il supporto alle quote:
# echo 'quota_v2' >> /etc/modules
Installare quota e quota tool
# apt-get install quota quotatool
Modificare /etc/fstab
Loggarsi sul gestore grafico come root (eviterà l'impegno della partizione /home). Assicurarsi che non ci siano utenti collegati con il comando who:
# who
In tal caso riavviare il sistema
# shutdown -r now "Riavvio del sistema per manutenzione"
Per prima cosa dobbiamo abilitare nel file /etc/fstab
le quote sul filesystem che ci interessa; solitamente si attivano sul punto di mount relativo alla directory radice delle home. Nel caso non ci sia un punto di mount per /home
(es. una partizione dedicata alle home dir. utenti) occorrerà applicare le modifiche all'intero filesystem (punto di mount: /
):
# cp /etc/fstab /etc/fstab.orig # nano /etc/fstab
Quindi accodare la stringa ,usrquota,grpquota
al campo "dump" della riga relativa al punto di mount dell'home, nell'esempio /home
è montata su /dev/hda5
:
/dev/hda5 /home ext3 defaults,usrquota,grpquota 0 2
L'opzione usrquota
attiva le quote per gli utenti, mentre grpquota
le attiva per i gruppi.
N.B. Scrivere tutto su una sola riga e senza spazi prima o dopo le virgole (si consiglia l'editor predefinito nano).
Creazione file quota
Occorrerà creare i due file "vuoti" quota (es. in /home)
# quotaoff -avug # touch /home/aquota.user aquota.group # chmod 600 /home/aquota.user aquota.group
Per rendere attive la nuova configurazione, dobbiamo smontare e rimontare il filesystem.
# mount -o remount /home
Se tutto è andato bene con il comando:
# cat /etc/mtab
dovremmo leggere le nuove opzioni: usrquota,grpquota
Attivare le quote
# quotacheck -avugcmf # quotaon -avug
Impostare le quote per un utente
Per impostare la quota di un utente, bisogna dare il comando edquota
(username
va sostituito con la userid dell'utente):
# edquota username
Si aprirà il vostro editor predefinito, che mostrerà una schermata simile a questa:
Disk quotas for user user (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/hda5 1848 49600 50000 244 0 0
- La prima cifra indica i blocchi attualmente in uso da parte dell'utente.
- La seconda indica il limite soft espresso in blocchi.
- La terza il limite hard, sempre espresso in blocchi.
- La quarta cifra indica il numero di inode utilizzati dall'utente, e le successive due sono i limiti soft e hard sugli inode.
Le modifiche effettuate vengono controllate quando si chiude l'editor. In caso abbiate commesso qualche errore vi verrà segnalato.
E' consigliabile crearsi un utente predefinito al quale applicare le quote di default con edquota
. Successivamente alla creazione di un nuovo utente, magari nello stesso script di creazione del nuovo utente, le quote dell'utente predefinito verranno trasferite anche al nuovo utente con il comando:
# edquota -p uid_predefinito uid_nuovo_utente
Impostare le quote per tutti gli utenti
Dopo aver impostato la quota di un utente, se volessimo usare le stesse impostazioni per altri utenti, sarebbe sufficiente scrivere:
# edquota -p user gianni
Tale comando copierà le impostazioni sulla quota di user
e le utilizzerà anche per l'utente gianni
.