Attivare le quote su un filesystem: differenze tra le versioni

m
verifica
m (verifica)
Riga 1: Riga 1:
{{Stub}}
{{File_System1}}
{{File_System1}}
== Introduzione ==
== Introduzione ==
In questa guida vedremo come attivare e gestire le quote su base utenti e gruppi.<br/>
In questa guida vedremo come attivare e gestire le quote su base utenti e gruppi.


'''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.
'''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.
Riga 20: Riga 19:


#  Limite hard (es. 1200MB):  "limite rigido". L'utente non sarà in grado di creare/salvare file con una dimensione maggiore di quella definita nel limite hard. E' un limite che non può essere derogato temporaneamente come quello soft.
#  Limite hard (es. 1200MB):  "limite rigido". L'utente non sarà in grado di creare/salvare file con una dimensione maggiore di quella definita nel limite hard. E' un limite che non può essere derogato temporaneamente come quello soft.
Tali limiti si applicano su un file system, e in questa guida si considera che la <code>/home</code> sia su una partizione separata. In caso contrario sarebbe necessario accedere alla directory radice <code>/</code> senza che nessun programma ne faccia uso, per esempio avviando da una distribuzione Debian live.


== Requisiti ==
== 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. Se si sta usando un vecchio Kernel 2.4 bisognerà inserire manualmente il modulo. Lanciando il comando:
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. Se si sta usando un vecchio Kernel 2.4 bisognerà inserire manualmente il modulo. Se lanciando il seguente comando con [[privilegi di amministratore]]:


  # modprobe quota_v2
  # modprobe quota_v2


se restituirà il messaggio:
restituirà il messaggio:


  ...Module quota_v2 loaded, with warnings...
  ...Module quota_v2 loaded, with warnings...
Riga 37: Riga 38:


== Installare quota e quota tool ==
== Installare quota e quota tool ==
Eseguiamo:


  # apt-get install quota quotatool
  # apt-get install quota quotatool
Mentre <code>quota</code> è il pacchetto fondamentale, <code>quotatool</code> serve a rendere più facile la gestione delle quote per utenti e gruppi, fornendo una comoda interfaccia a linea di comando anziché dover modificare manualmente dei file di configurazione.


== Modificare <code>/etc/fstab</code> ==
== Modificare <code>/etc/fstab</code> ==
 
Loggarsi al sistema come [[root]] (eviterà l'impegno della partizione <code>/home</code>), preferibilmente da una console virtuale. Assicurarsi che non ci siano utenti collegati con il comando who:
Loggarsi al sistema come root (eviterà l'impegno della partizione /home). Assicurarsi che non ci siano utenti collegati con il comando who:


  # who
  # who
Riga 55: Riga 58:
  # nano /etc/fstab
  # nano /etc/fstab


Quindi accodare la stringa <code>,usrquota,grpquota</code> al campo "dump" della riga relativa al punto di mount dell'home,  nell'esempio <code>/home</code> è montata su <code>/dev/hda5</code>:
Quindi accodare la stringa <code>,usrquota,grpquota</code> al campo "dump" della riga relativa al punto di mount dell'home,  nell'esempio <code>/home</code> è montata su <code>/dev/sda5</code>:


  /dev/hda5       /home          ext3     defaults''',usrquota,grpquota'''        0      2
  /dev/sda5       /home          ext4     defaults''',usrquota,grpquota'''        0      2


L'opzione <code>usrquota</code> attiva le quote per gli utenti, mentre <code>grpquota</code> le attiva per i gruppi.
L'opzione <code>usrquota</code> attiva le quote per gli utenti, mentre <code>grpquota</code> 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).
'''N.B. Scrivere tutto su una sola riga e senza spazi prima o dopo le virgole'''. Poi per salvare premere <code>Ctrl-o</code> e per uscire <code>Ctrl-x</code>.


== Creazione file quota ==
== Creazione file quota ==
Disabilitiamo le quote con:


Occorrerà creare i due file "vuoti" quota
# quotaoff -avug


# quotaoff -avug  
Le opzioni <code>-avug</code> sono definite in modo consistente per tutti i comandi <code>quotaoff</code>, <code>quotaon</code>, <code>quotacheck</code>, ecc... e significano:
# touch /home/aquota.user
* '''-a''' di applicare il comando a tutti i file system con quote, cercandoli in <code>/etc/fstab</code>;
# touch /home/aquota.group 
* '''-v''' di aumentare la verbosità dell'output prodotto;
# chmod 600 /home/aquota.user
* '''-u''' di applicare il comando alle quote utente;
# chmod 600 /home/aquota.group
* '''-g''' di applicare il comando alle quote gruppo.
 
Nel caso di <code>quotaoff</code> disabilitano tutte le quote utente e gruppo.


Per rendere attive la nuova configurazione, dobbiamo smontare e rimontare il filesystem.
Per rendere attive la nuova configurazione, dobbiamo smontare e rimontare il filesystem.
Riga 81: Riga 87:
  # cat /etc/mtab
  # cat /etc/mtab


dovremmo leggere le nuove opzioni: usrquota,grpquota
dovremmo leggere le nuove opzioni: '''usrquota,grpquota''' per il file system utilizzato da <code>/home</code>.
 
Creiamo ora i file di configurazione delle quote:


== Attivare quota ==
# quotacheck -avugcmf
Dove le opzioni <code>-avug</code> ha lo stesso significato, e applica il comando alle quote utente e gruppo di tutti i file system, e inoltre:
* '''-c''' crea i file delle quote, dopo il controllo;
* '''-m''' non prova a rimontare in sola lettura i file system per il controllo;
* '''-f''' forza la scrittura delle quote.


# quotacheck -avugcmf
Senza le opzioni <code>-cmf</code> il comando <code>quotacheck</code> effettuerebbe soltanto il controllo, senza alterare le quote. Con queste opzioni invece creerà due file in <code>/home</code>: <code>quota.user</code> e <code>quota.group</code>, per gestire le quote '''senza''' journal.
# quotaon -avug


== Quota giornalizzata ==
== Quota giornalizzata ==
Se dopo l'esecuzione di quotacheck, si riceve il seguente messaggio
Se dopo l'esecuzione di quotacheck, si riceve il seguente messaggio


Riga 95: Riga 105:
  running quotacheck after an unclean shutdown.
  running quotacheck after an unclean shutdown.


E' preferibile optare per la "journaled quota" che offre vantaggi rispetto alla quota normale.
E' preferibile optare per la ''journaled quota'' che offre vantaggi rispetto alla quota normale.
 
Creiamo per prima cosa nuovi file per le quote con ''journal'':
 
# touch /home/aquota.user
# touch /home/aquota.group
# chmod 600 /home/aquota.user
# chmod 600 /home/aquota.group


Riapriamo il file <code>/etc/fstab</code>:
Riapriamo il file <code>/etc/fstab</code>:
Riga 101: Riga 118:
  # nano /etc/fstab
  # nano /etc/fstab


e accodiamo questa volta la stringa <code>,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0</code> al campo "dump" della riga relativa al punto di mount dell'home, nell'esempio <code>/home</code> è montata su <code>/dev/hda5</code>:
e sostituiamo <code>,usrquota,grpquota</code> con la stringa <code>,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0</code> al campo "dump" della riga relativa al punto di mount dell'home, nell'esempio <code>/home</code> è montata su <code>/dev/sda5</code>:


  /dev/hda5       /home          ext3     defaults''',usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0'''        0      2
  /dev/sda5       /home          ext4     defaults''',usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0'''        0      2


sempre prestando attenzione a mettere tutto su una sola riga.
sempre prestando attenzione a mettere tutto su una sola riga.


A questo punto, si riparte dalla procedura di creazione della quota
A questo punto, si ripete la procedura di creazione della quota, che sarà utilizzata per popolare i file: <code>aquota.user</code> e <code>aquota.group</code> situati nella home e indicati nel file appena modificato. Il parametro <code>jqfmt=vfsv0</code> invece indica il formato delle quote (32 bit per UID/GID, 64 bit per limiti sullo spazio e 32 bit per limiti sugli inode), ma sono supportati anche <code>vfsv1</code> (tutto a 64 bit), <code>rpc</code> (su [[Nfs-kernel-server: condividere risorse tra macchine GNU/Linux|NFS]]) e <code>xfs</code> (per file system <code>xfs</code>).
 
== Attivare quota ==
Una volta che sono state create si possono attivare con <code>quotaon</code> e le solite opzioni:
# quotaon -avug


== Impostare la quota per un utente ==
== Impostare la quota per un utente ==
 
Per impostare la quota di un utente, bisogna dare il comando <code>edquota</code> (<code>username</code> va sostituito con il nome dell'utente):
Per impostare la quota di un utente, bisogna dare il comando <code>edquota</code> (<code>username</code> va sostituito con la userid dell'utente):


  # edquota username
  # edquota username
Riga 119: Riga 139:
   Disk quotas for user user (uid 1000):
   Disk quotas for user user (uid 1000):
   Filesystem                  blocks      soft      hard    inodes    soft    hard
   Filesystem                  blocks      soft      hard    inodes    soft    hard
   /dev/hda5                     1848      49600      50000        244        0        0
   /dev/sda5                     1848      49600      50000        244        0        0
</pre>
</pre>


* La prima cifra indica i blocchi attualmente in uso da parte dell'utente.
* La prima cifra indica i blocchi attualmente in uso da parte dell'utente.
* La seconda indica il limite soft espresso in blocchi.
* La seconda indica il limite soft espresso in blocchi (la dimensione dipende da quella usata dal file system, ma si può modificare più agilmente con <code>quotatool</code> come vedremo).
* La terza il limite hard, sempre 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.
* La quarta cifra indica il numero di inode utilizzati dall'utente, e le successive due sono i limiti soft e hard sugli inode.
Riga 132: Riga 152:


== Impostare il periodo di grazia ==
== Impostare il periodo di grazia ==
Il periodo di grazia è definito a livello di punto di mount e si può modificare con il comando:
Il periodo di grazia è definito a livello di punto di mount e si può modificare con il comando:


Riga 140: Riga 159:


== Warnquota ==
== Warnquota ==
Warnquota è uno script che invia automaticamente una mail all'utente che ha raggiunto il limite soft. E' gestito da cron e lo si configura mediante debconf:
Warnquota è uno script che invia automaticamente una mail all'utente che ha raggiunto il limite soft. E' gestito da cron e lo si configura mediante debconf:


Riga 148: Riga 166:


== Usare quotatool ==
== Usare quotatool ==
<code>quotatool</code> è uno strumento che consente di semplificare le operazione di gestione delle quote degli utenti, rispetto <code>edquota</code>, anche in modo dinamico: cioè è possibile modificare, in più o in meno, i diversi limiti. Ad esempio il seguente comando:


quotatool è uno strumento che consente di semplificare le operazione di gestione delle quote degli utenti, rispetto edquota, anche in modo dinamico: cioè è possibile modificare, in più o in meno, i diversi limiti. Ad esempio il seguente comando:
# quotatool -v -u mariorossi -b -q 800M -l 1200M /home


# quotatool -v -u mariorossi -b -q 800M  -l 1200M  /home
Imposta la quota utente (opzione <code>-u</code>) per 'mariorossi' sulla partizione <code>/home</code> con i limiti di spazio disco soft/hard: 800MB/1200MB (opzioni: <code>-q</code>/<code>-l</code>). Quella per un gruppo è invece supportata con l'opzione <code>-g</code>.
 
Imposta per l'utente 'mariorossi' i limiti di spazio disco soft/hard: 800MB/1200MB


Mentre il successivo comando:
Mentre il successivo comando:
Riga 170: Riga 187:


== Impostare una stessa quota per più utenti ==
== Impostare una stessa quota per più utenti ==
Dopo aver impostato la quota di un utente, se volessimo usare le stesse impostazioni per altri utenti, sarà sufficiente scrivere, per esempio:
Dopo aver impostato la quota di un utente, se volessimo usare le stesse impostazioni per altri utenti, sarà sufficiente scrivere, per esempio:


Riga 204: Riga 220:


== Report quota ==
== Report quota ==
Con il comando <code>repquota</code> è possibile visualizzare un reporter riepilogativo delle quote impostate a livello di gruppo e di utente, con i limiti di blocchi e di inode.:
Con il comando <code>repquota</code> è possibile visualizzare un reporter riepilogativo delle quote impostate a livello di gruppo e di utente, con i limiti di blocchi e di inode.:


  # repquota -agus
  # repquota -augs
L'opzione <code>-s</code> è per utilizzare un formato ''human-readable''.


Es.
Es.
Riga 232: Riga 248:


== Che quota ho? ==
== Che quota ho? ==
Ogni utente può conoscere la quota assegnata mediante il comando:
Ogni utente può conoscere la quota assegnata mediante il comando:


Riga 244: Riga 259:


== Test dei limiti ==
== Test dei limiti ==
 
E' possibile testare i limiti creando un file ''zero filled'' (riempito con una sequenza del carattere ASCII n. 0) di dimensione maggiore o uguale ai limiti imposti. Supponiamo che i limiti siano 800MB/1200MB.
E' possibile testare i limiti creando dei file "zero filled" (vuoti) di dimensioni maggiori o uguali dei limiti imposti. Supponiamo che i limiti siano 800MB/1200MB.


Creiamo un file di '''800MB (soft limit)''':
Creiamo un file di '''800MB (soft limit)''':
Riga 273: Riga 287:


== Check quotidiano delle quote ==
== Check quotidiano delle quote ==
E' consigliabile impostare un cron, che a una particolare ora (es. le ore 05:00 di ogni giorno) esegua un check delle quote. Lanciare l'editor di crontab:
E' consigliabile impostare un cron, che a una particolare ora (es. le ore 05:00 di ogni giorno) esegua un check delle quote. Lanciare l'editor di crontab:


Riga 283: Riga 296:


== Disattivare le quote ==
== Disattivare le quote ==
Può capitare di impostare valori insufficienti nei limiti e bloccare così i login oppure di non avere più necessità di impostare quote. Con il comando:
Può capitare di impostare valori insufficienti nei limiti e bloccare così i login oppure di non avere più necessità di impostare quote. Con il comando:


  # quotaoff -avug
  # quotaoff -avug


verranno disattivate tutte le quote su base utente e gruppo.
verranno disattivate tutte le quote su base utente e gruppo, come abbiamo già visto.
 
[[Categoria:Filesystem]]
[[Categoria:Filesystem]]
3 581

contributi