Quotes de disc

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.

1. Requisits previs

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 -h

Suposarem, a tall d’exemple, que volem aplicar quotes a la partició /home, muntada des de /dev/sda3.

2. Instal·lació del paquet de quotes

Instal·lem les eines necessàries per gestionar quotes:

sudo apt update
sudo apt install quota

Aquest paquet proporciona les ordres quotacheck, edquota, repquota, quotaon i quotaoff, entre d’altres.

3. Activació de les quotes al fitxer /etc/fstab

Cal 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/fstab

Localitzem la línia de la partició /home i hi afegim les opcions:

/dev/sda3   /home   ext4   defaults,usrquota,grpquota   0   2
💡
Nota

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.

4. Remuntar la partició

Perquè els canvis s’apliquin sense reiniciar el sistema, remuntem la partició:

sudo mount -o remount /home

Comprovem que les opcions s’han aplicat correctament:

mount | grep /home

Hauríem de veure usrquota i grpquota a la sortida.

5. Creació dels fitxers de quotes

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 /home

On cada opció significa:

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.*

6. Activació de les quotes

Un cop creats els fitxers, activem el sistema de quotes:

sudo quotaon -v /home

Per desactivar-les en qualsevol moment:

sudo quotaoff -v /home

7. Assignació de quotes a un usuari

Per 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 alumne1

Aquesta 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      0

Els 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
💡
Nota

Els valors de blocks s’expressen en KB. 500 MB equivalen a 512000 KB.

8. Definició del període de gràcia

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 -t

Aquesta ordre mostra:

Grace period before enforcing soft limits for users:
Filesystem    Block grace period     Inode grace period
/dev/sda3     7days                  7days

Es pot modificar a hores, dies o setmanes segons les necessitats (per exemple, 3days, 12hours).

9. Còpia de la configuració a altres usuaris

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 alumne4

Aquesta ordre copia els límits d’alumne1 cap a la resta d’usuaris indicats, fet molt útil en entorns educatius amb molts alumnes.

10. Quotes per grup

De manera similar als usuaris, es poden definir quotes per grup:

sudo edquota -g alumnes

Això permet limitar l’espai total que pot utilitzar un grup sencer, independentment dels límits individuals dels seus membres.

11. Consulta de l’estat de les quotes

Per veure l’ús actual de quotes d’un usuari concret:

quota -u alumne1

Per obtenir un informe general de totes les quotes en una partició:

sudo repquota -a

La 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  1100

12. Avisos automàtics als usuaris (opcional)

El 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.conf

I afegirem una entrada a crontab per executar-ho periòdicament:

sudo crontab -e
0 8 * * * /usr/sbin/warnquota

13. Verificació i manteniment

É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

Resum de les ordres principals

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

Versions d’aquest document

Domini Públic (CC0)