Les quotes de disc (disk quotas) són un mecanisme del sistema Linux que permet limitar l’espai d’emmagatzematge i el nombre d’inodes (fitxers) que poden utilitzar els usuaris o els grups en un sistema de fitxers determinat. Aquest mecanisme és especialment útil en entorns multiusuari, com servidors de fitxers, sistemes acadèmics o serveis compartits, on cal evitar que un usuari consumeixi tot l’espai disponible en perjudici dels altres.
La configuració de quotes de disc és una eina essencial per a
l’administració de sistemes multiusuari, ja que permet repartir de
manera equitativa i controlada l’espai d’emmagatzematge disponible. El
procés bàsic consisteix a habilitar les opcions de muntatge
corresponents, generar els fitxers de quota amb quotacheck,
activar el sistema amb quotaon i, finalment, definir els
límits per usuari o grup mitjançant edquota.
En aquest document es mostra com instal·lar, configurar i administrar quotes de disc en un sistema Ubuntu (o Debian), tant per usuaris com per grups.
Per poder aplicar quotes, el sistema de fitxers ha de ser compatible
(ext2, ext3, ext4, XFS, etc.) i s’ha de muntar amb les opcions usrquota o grpquota.
Comprovem primer quina és la partició on volem aplicar les quotes:
df -hSuposarem, a tall d’exemple, que volem aplicar quotes a la partició /home, muntada des de /dev/sda3.
Instal·lem les eines necessàries per gestionar quotes:
sudo apt update
sudo apt install quotaAquest paquet proporciona les ordres quotacheck, edquota, repquota, quotaon i quotaoff, entre d’altres.
/etc/fstabCal editar el fitxer /etc/fstab per afegir les opcions usrquota (quotes per usuari) i grpquota
(quotes per grup) a la línia corresponent a la partició on volem
aplicar-les.
sudo nano /etc/fstabLocalitzem la línia de la partició /home i hi afegim les
opcions:
/dev/sda3 /home ext4 defaults,usrquota,grpquota 0 2
Si només es vol controlar l’espai dels usuaris individuals, n’hi ha
prou amb usrquota. Si també es vol limitar per grups, cal
afegir grpquota.
Perquè els canvis s’apliquin sense reiniciar el sistema, remuntem la partició:
sudo mount -o remount /homeComprovem que les opcions s’han aplicat correctament:
mount | grep /homeHauríem de veure usrquota i grpquota a la
sortida.
Ara cal generar els fitxers aquota.user i aquota.group, que emmagatzemen la informació de les quotes.
Això es fa amb l’ordre quotacheck:
sudo quotacheck -cugm /homeOn cada opció significa:
-c: crea els fitxers de quota nous (en lloc d’utilitzar
els existents).-u: comprova les quotes d’usuari.-g: comprova les quotes de grup.-m: força la comprovació encara que el sistema de
fitxers estigui muntat.Després de l’execució, haurien d’aparèixer els fitxers aquota.user i aquota.group a l’arrel de /home:
ls -l /home/aquota.*Un cop creats els fitxers, activem el sistema de quotes:
sudo quotaon -v /homePer desactivar-les en qualsevol moment:
sudo quotaoff -v /homePer establir els límits d’un usuari concret (per exemple, alumne1), utilitzem l’ordre edquota, que obre
un editor de text amb la configuració actual:
sudo edquota -u alumne1Aquesta ordre mostra una pantalla similar a aquesta:
Disk quotas for user alumne1 (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 102400 0 0 120 0 0Els camps que cal entendre són:
Per exemple, per limitar l’usuari a 500 MB (límit suau) i 600 MB (límit dur), i a 1000/1100 inodes:
Disk quotas for user alumne1 (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda3 102400 512000 614400 120 1000 1100
Els valors de blocks s’expressen en KB. 500 MB equivalen
a 512000 KB.
El període de gràcia és el temps durant el qual un usuari pot superar el límit suau abans que es converteixi en un límit dur. Es configura amb:
sudo edquota -tAquesta ordre mostra:
Grace period before enforcing soft limits for users:
Filesystem Block grace period Inode grace period
/dev/sda3 7days 7daysEs pot modificar a hores, dies o setmanes segons les necessitats (per
exemple, 3days, 12hours).
Si es vol aplicar la mateixa configuració de quotes a múltiples
usuaris, es pot utilitzar edquota amb l’opció -p per replicar la configuració d’un usuari de
referència:
sudo edquota -p alumne1 -u alumne2 alumne3 alumne4Aquesta ordre copia els límits d’alumne1 cap a la resta
d’usuaris indicats, fet molt útil en entorns educatius amb molts
alumnes.
De manera similar als usuaris, es poden definir quotes per grup:
sudo edquota -g alumnesAixò permet limitar l’espai total que pot utilitzar un grup sencer, independentment dels límits individuals dels seus membres.
Per veure l’ús actual de quotes d’un usuari concret:
quota -u alumne1Per obtenir un informe general de totes les quotes en una partició:
sudo repquota -aLa sortida mostra una taula amb l’usuari, l’espai utilitzat, els
límits i si s’ha superat algun límit (marcat amb +):
*** Report for user quotas on device /dev/sda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
alumne1 -- 312000 512000 614400 340 1000 1100El servei quotarpc o l’ordre warnquota
permeten enviar avisos per correu electrònic als usuaris que s’apropen
al límit. Cal configurar el fitxer /etc/warnquota.conf i,
opcionalment, afegir una tasca programada amb cron:
sudo apt install quota
sudo nano /etc/warnquota.confI afegirem una entrada a crontab per executar-ho
periòdicament:
sudo crontab -e0 8 * * * /usr/sbin/warnquota
És recomanable executar quotacheck periòdicament (per
exemple, després d’una aturada incorrecta del sistema) per mantenir la
integritat dels fitxers de quota:
sudo quotaoff /home
sudo quotacheck -avugm
sudo quotaon /home| Ordre | Funció |
|---|---|
quotacheck |
Crea o verifica els fitxers de quotes |
quotaon / quotaoff |
Activa o desactiva el sistema de quotes |
edquota -u |
Edita la quota d’un usuari |
edquota -g |
Edita la quota d’un grup |
edquota -t |
Configura el període de gràcia |
quota -u |
Mostra la quota d’un usuari |
repquota -a |
Mostra un informe complet de totes les quotes |