Sempre più spesso, specie nell’amministrazione server, capita di avere l’esigenza di gestire una partizione usata in multiutenza (una sola partizione con numero N utenti) e assicurare che l’utente1 non consumi tutto lo spazio dedicato a N utenti.
Lo strumento che si utilizza per l’assegnazione di un limite dello spazio disco a ciascun utente è chiamato comunemente: “Quota disk”. Le quote difatti, consentono il controllo dello spazio disco, assegnando ad un utente e/o ad un gruppo di sistema una determinata quota disco, espressa in byte.
In primo luogo è necessario specificare all’interno del file /etc/fstab le partizioni che dovrebbero adottare le quote per user e/o group, e quindi modificare la partizione scelta come nell’esempio:
~# vi /etc/fstab /dev/hda4 /home ext3 defaults,usrquota,grpquota 1 2
Stabilita la partizione (nell’esempio hda4=/home) procediamo con la creazione dei file aquota.user e aquota.group nella radice del filesystem in questione, nel nostro esempio in /home . Esempio:
~# cd /home ~# touch aquota.user aquota.group
NB: E’ importante dare a tali file i permessi in lettura e scrittura solo per l’user root onde evitare che un normale utente possa accedervi e/o modificare il file.
~# chmod 600 aquota.*
NB: prima di continuare sarà bene un restart della macchina per rendere effettive le modifiche sul fs della partizione scelta per le quote disk.
NB: Al riavvio eseguiremo (se non sia già stato eseguito al boot) il comando quotacheck che si occuperà di esaminare tutti i filesystem con l’opzione quota attiva e di costruire le relative tabelle disco verificando le quote attive.
~# quotacheck -avugm
Stabilita la partizione sul quale applicare le quote disk non resta che assegnarle agli utenti. Di seguito sono elencati vari esempi.
**- Assegnazione di una quota di disco all’utente esempio “pippo” pari a 5000 Byte (5 MB) -
**
~# edquota -u pippo
NB: modificare nell’output i valori (soft,hard etc..); la modifica di tali valori avviene di default tramite l’editor di testo vi.
Disk quotas for user pippo (uid 1000): Filesystem blocks soft hard inodes /dev/hda4 32 5000 0 8 0 0
In specifico:
blocks = 32 (32 KB)
soft = limite massimo a disposizione dell’utente, nell’esempio pari a 5 MB
hard = “periodo di grazia” entro il quale l’utente può superare il limite imposto (solo se specificato con un altro comando).
**- Impostazione del “periodo di grazia” (hard)
**
Come dall’esempio precedente è possibile concedere ad un utente un “periodo di grazia”(hard) entro il quale potrà superare il limite quota imposto(soft) per un dato numero di giorni. Per prima cosa è necessario impostare il tempo generico corrispondente a tale periodo di grazia, espresso in “giorni,ore,minuti o secondi”:
~# edquota -t Grace period before enforcing soft limits for user: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/hda4 7days 7days
NB: se impostato il periodo di grazia (7 giorni) si potrà definire nel campo hard il massimo spazio occupabile da parte dell’utente durante tale periodo. Esempio:
~# edquota -u pippo Filesystem blocks soft hard inodes /dev/hda4 32 5000 7000 8 0 0
In alternativa si può decidere di assegnare una quota disk unica procedendo per gruppi invece che per utenza.
- Quota disco per gruppo -
~# edquota -g users Disk quotas for group users (gid 100): Filesystem blocks soft hard inodes /dev/hda4 0 1000000 0 0 0 0
NB: Questo modo di procedere non è il massimo, in quanto esso, potrebbe avere lo svantaggio che un utente potrebbe occupare tutto lo spazio a disposizione del gruppo. Nell’esempio la quota disk è pari a 1GB.
- Uso dei Templates -
Per evitare di effetturare le solite “dispersive” operazioni per tutti gli utenti del nostro server (come fatto per l’utente pippo) sarà più che utile ricorrere ai templates per copiare le medesime impostazioni sul resto dell’utenza comune. Esempio:
~# edquota -up pippo pluto giggino
NB: nell’esempio si applicano le stesse impostazioni attive per l’utente pippo ai successivi utenti, ossia: pluto e giggino.
Potrebbe però essere “più semplicemente” espandibile a tutti gli utenti del sistema. Esempio:
~# edquota -p pippo `awk -F: '$3 > 499 {print $1}' /etc/passwd`
**- Comandi utili -
**
I comandi disponibili per l’attivazione-disattivazione e la verifica delle quote disco, spazio utilizzato, spazio disponibile, periodo di grazia sono:
~# quotaon /home
Per attivare le quote.
~# quotaoff /home
Per disattivare le quote.
NB: /home è la partizione attivata precedentemente con i dovuti accorgimenti mediante la configurazione di /etc/fstab all’attivazione delle quote utente.
STATS DELLE QUOTE DISK
~# repquota -a
Ci restituirà come output informazioni sulle quote disco (spazio utilizzato, spazio disponibile e periodo di grazia) per ciascun utente configurato precedentemente. Esempio:
*** Report for user quotas on device /dev/hda4 Block grace time: 24:00; Inode grace time: 24:00 Block limits File limits User used soft hard grace used ----------------------------------------------------------------------------------- root -- 40000 0 0 4 0 0 0 pippo -- 7000 10000 20000 101 0 0 pluto -- 990 10000 20000 12 0 0 giggino -- 990 10000 20000 12 0 0
# End