Quota su disco¶
Documentazione obsoleta: fuss-server crea autonomamente le quote quando possibile.
In questa guida si assume che si vogliano attivare le quote disco su un filesystem già presente nella macchina (assumeremo che si tratti di /home
su /dev/sdb1
) partendo da una situazione in cui queste non sono attive. Si assumerà anche l'uso di ext4
come filesystem, che è il default di Debian e del fuss-server
.
Metodo tradizionale¶
Per abilitare le quote disco occorre anzitutto scegliere se si vogliono usare solo le quote utenti, o sia le quote utenti che le quote gruppo. Nel primo caso occorrerà inserire solo l'opzione usrquota
nelle opzioni di montaggio del filesystem, nel secondo occorrerà aggiungere anche l'opzione grpquota
(vedi man 8 mount
).
Con il supporto tradizionale delle quote non si ha il vantaggio delle journaled quota che consentono di evitare il ricalcolo del quotacheck
in caso di spegnimento senza corretto shutdown. Per attivarle occorrerà inserire in /etc/fstab
nelle opzioni del filesystem una riga del tipo:
/dev/sdb1 /home ext4 defaults,usrquota,grpquota 0 2
Nuova configurazione¶
Con le versioni più recenti del kernel anche le informazioni delle quote disco possono essere salvate sul giornale del filesystem per non perdere informazioni in caso di crash. Se si vogliono usare le quote abilitando questa funzionalità (a occorrerà inserire invece le opzioni usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0
), vale a dire sarà necessario inserire on /etc/fstab
nelle opzioni del filesystem una riga del tipo:
/dev/sdb1 /home ext4 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 2
Passi successivi¶
Una volta modificato /etc/fstab
sarà necessario eseguire i seguenti passi:
- rimontare il filesystem per fargli prendere le opzioni modificate con il comando:
mount -o remount /home/
- eseguire il comando:
touch /home/quota.user touch /home/quota.group chmod 600 /home/quota.user chmod 600 /home/quota.group quotacheck -vcgum /home/
- attendere la fine del processo di computo delle quote che, a seconda della quantità di file presenti, può durare anche alcuni minuti; inoltre a seconda del tipo di configurazione potrà dare diversi messaggi di avviso, da ignorare
- infine attivare le quote con il comando:
quotaon -avug
un riavvio risulterà comunque utile per avere una ulteriore ricostruzione più precisa delle quote, dato che in caso di attività degli utenti durante l'esecuzione di quotacheck
il calcolo potrebbe risultare leggermente falsato.
Per verificare manualmente il funzionamento delle quote ed ottenerne un rapporto generale eseguire il comando (il primo stampa le quote utente, il secondo le quote gruppo):
repquota /home; repquota -g /home
Configurazione manuale delle quote¶
Nel caso si volesse farlo con uno script perché magari gli utenti sono tanti, si può fare nel seguente modo:
edquota -f /home UTENTE
per configurare la quota ad un utente (uno a caso), oppure configurare, per esempio, il softlimit a 200 mb e l'_hardlimit_ a 250 mb per l'utente con seguente comando:
quotatool -u UTENTE -bq 200M -l '250 Mb' /home
e infine per copiare le impostazioni a tutti gli altri utenti:
edquota -f /home -p UTENTE $(ldapsearch -x |grep uid:|grep -v \$$ |cut -f 2 -d " ")
La sintassi è ben illustrata dalla manpage edquota(8); l'espressione
ldapsearch -x |grep uid:|grep -v \$$ |cut -f 2 -d " "
viene sostituita dal risultato dell'elaborazione dei comandi, generando la lista completa degli utenti del server:
ldapsearch -x
manda su stdout l'albero ldapgrep uid
: isola le righe con l'attributo che ci interessagrep -v \$$
elimina (-v
) le righe relative agli utenti macchinacut -f 2 -d " "
isola la parte della riga contenente lo username
Infine, se vogliamo modificare il "grace time":
edquota -t