Com configurar les quotes del sistema de fitxers (disc) a Ubuntu


La quota del sistema de fitxers és una característica integrada estàndard que es troba al nucli de Linux. Les quotes determinen la quantitat d'espai que hauria de tenir un fitxer per suportar les activitats de l'usuari. Les quotes de disc també limiten el nombre de fitxers que un usuari pot crear al sistema.

Els sistemes de fitxers que admeten el sistema de quotes inclouen xfs, ext2, ext4 i ext3 per esmentar-ne alguns. L'assignació de quotes és específica per al sistema de fitxers i per a cada usuari. Aquest article inclou tot el que necessiteu saber sobre com treballar amb el sistema de fitxers de quota en un entorn Ubuntu 18.04 multiusuari.

La hipòtesi aquí és que esteu utilitzant el sistema Ubuntu 18.04 amb un usuari (tecmint) amb drets sudo. Les idees compartides aquí poden funcionar en qualsevol distribució de Linux sempre que utilitzeu la tècnica d'implementació adequada.

Pas 1: instal·lació de Quota a Ubuntu

Perquè les quotes estiguin preparades i utilitzables, instal·leu l'eina de línia d'ordres quota mitjançant l'ordre apt, però abans cal actualitzar els paquets de programari del sistema.

$ sudo apt update

Ara utilitzeu l'ordre següent per instal·lar el paquet de quota a Ubuntu.

$ sudo apt install quota

Premeu Y i, a continuació, ENTER perquè comenci el procés d'instal·lació.

Confirmeu la versió d'instal·lació executant l'ordre següent. El vostre número de versió pot ser diferent del que veieu a continuació.

$ quota --version

Pas 2: instal·lació del mòdul per al nucli de quota

Aquells que executen un sistema virtual basat en núvol, és possible que la instal·lació predeterminada d'Ubuntu no tingui els mòduls del nucli que admeten l'ús de quota. Heu de confirmar amb l'eina de cerca i assegurar-vos que els dos mòduls, quota_v1 i quota _v2, es troben dins del directori /lib/modules.

$ find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'

Aquest hauria de ser el resultat de l'ordre anterior.

No us preocupeu per les versions del nucli sempre que els dos mòduls estiguin presents. Si no es troba, utilitzeu l'ordre següent per instal·lar els mòduls del nucli de quota tal com es mostra.

$ sudo apt install linux-image-extra-virtual

Obtindreu els mòduls adequats que necessiteu per a la implementació de quotes.

Pas 3: Actualització de les opcions de muntatge del sistema de fitxers

Perquè les quotes estiguin actives en un sistema específic, s'ha de muntar amb les opcions de quota relacionades. Podeu fer-ho actualitzant l'entrada del sistema de fitxers que es troba al fitxer /etc/fstab.

$ sudo nano /etc/fstab

Hauríeu d'estar preparat per editar el fitxer adequadament. La diferència entre un fitxer fstab i un d'escriptori és la diferència en com el / o el sistema de fitxers arrel representa tot l'espai del disc. Substituïu la línia (/) que apunta al sistema arrel utilitzant les línies següents.

LABEL=cloudimg-rootfs   /        ext4   usrquota,grpquota        0 0

Les línies canviaran per permetre l'accés a userquota i grpquota. Podeu deixar-ne un que no formi part de la configuració final. Si el fstab tenia algunes opcions, afegiu les noves opcions al final de la línia. A mesura que aneu afegint, separeu els elements nous amb una coma però sense espai entre ells.

Torneu a muntar el sistema de fitxers perquè els canvis tinguin efecte.

$ sudo mount -o remount /

NOTA: confirmeu que no hi ha espais entre les opcions a /etc/fstab per evitar aquests errors.

mount: /etc/fstab: parse error

La verificació de l'ús de noves opcions en muntar el sistema de fitxers al fitxer /proc/mounts es fa mitjançant grep. L'ordre mostra l'entrada del sistema de fitxers arrel al fitxer.

$ sudo cat /proc/mounts | grep ' / '

A la sortida, podeu veure les dues opcions que hem configurat. És hora d'activar el sistema de quotes.

Pas 4: habilitar les quotes de disc a Ubuntu

Primer, heu d'executar l'ordre quotacheck.

$ sudo quotacheck -ugm /

L'ordre crea dos fitxers un usuari de quota i un grup de quota que tenen informació sobre el límit i l'ús del sistema de fitxers. Aquests fitxers han d'estar presents abans de començar a utilitzar la quota.

Aquí teniu una definició dels paràmetres:

  • -u: simbolitza que es crearà un fitxer de quota basat en l'usuari.
  • -g: indica que es crearà un fitxer de quotes basat en grup.
  • -m: desactiva el muntatge del sistema de fitxers com a només de lectura i alhora dóna resultats precisos en un entorn on l'usuari segueix desant fitxers. L'opció m no és obligatòria durant la configuració.

Quan no cal habilitar l'ús de quotes basades en usuari o grup, no cal executar l'opció de verificació de quota. Confirmeu-ho enumerant el directori arrel mitjançant l'ordre ls.

$ ls /
aquota.group  bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  srv  tmp  var      vmlinuz.old
aquota.user   boot  etc  initrd.img  lib             lost+found  mnt    proc  run   snap  sys  usr  vmlinuz

Si no s'inclouen els paràmetres u i g a l'ordre quotacheck, faltaran els fitxers corresponents.

Ara estem preparats per activar la quota al sistema de fitxers arrel (/) amb l'ordre següent.

$ sudo quotaon -v /

Pas 5: configureu les quotes per a un sol usuari

Podem utilitzar les ordres edquota i setquota per configurar-les per a usuaris o grups.

Les ordres edquota editen quotes, per exemple, podem editar una quota pertanyent a l'usuari de tecmint mitjançant:

$ sudo edquota -u tecmint

L'ús de l'opció -u especifica que la quota pertany a un usuari. Utilitzeu l'opció -g si necessiteu editar una quota que pertany a un grup. L'ordre obrirà un fitxer amb l'editor de text que escolliu.

La sortida enumera el nom d'usuari, l'uid, el sistema de fitxers amb quotes actives i l'ús de blocs i inodes. Una quota basada en inodes limita el nombre de fitxers i directoris que els usuaris poden crear independentment de la mida que utilitzin al disc. La majoria dels administradors prefereixen la quota basada en blocs que controla l'espai en disc.

NOTA: l'ús de blocs no mostra com pot canviar en funció de diferents factors, com ara l'eina de línia d'ordres que els informa. Dins de les quotes de contextos a Ubuntu, podem suposar que un sol bloc és el mateix que un kilobyte d'espai en disc.

Utilitzant la línia d'ordres anterior, l'usuari utilitzarà 2032 blocs, que és el mateix que 2032 KB d'espai al /dev/sda1. El valor 0 desactiva els límits tant suaus com durs.

Cada conjunt de quotes permet configurar el límit suau i dur. És possible que un usuari que superi el límit suau estigui per sobre de la seva quota, però no se'ls impedeix utilitzar més espais o inodes. En aquest cas, l'usuari té set dies per bescanviar el seu espai de límit suau, i si no ho fa, és difícil desar o crear fitxers.

Un límit dur significa que la creació de nous blocs o inodes s'atura en el moment en què arribeu al límit. Els usuaris informaran que han vist avisos o errors mentre realitzen tasques habituals.

Podem actualitzar la quota de blocs de tecmint per tenir un límit suau de 100 MB i 110 MB per al límit dur.

Després de l'edició, tanqueu el fitxer i comproveu la nova configuració del límit de quota d'usuari mitjançant l'ordre de quota.

$ sudo quota -vs tecmint

NOTA: donant als vostres usuaris l'oportunitat d'analitzar les seves quotes sense invocar l'ordre sudo, se'ls ha de donar accés per llegir fitxers de quota durant la fase de creació del pas quatre. Una manera senzilla de fer-ho és crear un grup d'usuaris i donar-hi accés perquè hi pugueu afegir usuaris.

setquota actualitza la informació de la quota mitjançant una única comanda sense cap configuració interactiva. L'ordre requereix el nom d'usuari i establir els límits tant suaus com durs que utilitzaran el bloc i l'inode. També haureu de declarar el sistema de fitxers que utilitzarà la quota.

$ sudo setquota -u tecmint 200M 220M 0 0 /

L'ordre duplica els límits de quota basats en blocs a 200 megabytes i 220 megabytes. Els dos 0 0 indiquen que tant els límits durs com els suaus no estan establerts, és un requisit fins i tot quan no cal establir quotes basades en inode.

Com és habitual, utilitzeu l'ordre quota per verificar el vostre progrés.

$ sudo quota -vs tecmint

Pas 6: generació d'informes de quotes

En generar un informe de quota, ha d'indicar l'ús de tots els usuaris. S'utilitza l'ordre repquota.

$ sudo repquota -s /

La sortida anterior és un informe sobre el sistema de fitxers arrel /. El -s indica a repquota que doni resultats en format llegible pels humans.

El temps de gràcia de bloqueig predeterminat és de 7 dies. La columna de gràcia alerta l'usuari sobre el nombre de dies abans de la denegació d'accés al disc de recursos.

Pas 7: establiu els períodes de gràcia de configuració

El període de gràcia és el moment en què un usuari obté permís per treballar més enllà del temps predeterminat.

$ sudo setquota -t 864000 864000 /

L'ordre indica que el bloc i l'inode tinguin un període de gràcia de 864000 segons l'equivalent a 10 dies. La configuració afectarà a tots els usuaris, per tant, cal establir valors fins i tot quan no hi hagi ús de blocs i inodes. El valor del temps ha d'estar en segons.

Confirmeu els canvis i comproveu si ha tingut efecte mitjançant l'ordre:

$ sudo repquota -s /

Missatges d'error comuns

quotaon: cannot find //aquota.group on /dev/vda1 [/]
quotaon: cannot find //aquota.user on /dev/vda1 [/]

L'error anterior és comú si intenteu activar les quotes amb l'ordre qoutaon abans d'intentar comprovar l'estat d'una quota mitjançant l'ordre quotacheck.

quotaon: using //aquota.group on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.
quotaon: using //aquota.user on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.

Aquest error indica a l'administrador que el nucli no és compatible o que podeu tenir la versió incorrecta a la màquina (tenim quota_v1 i quota_v2). Per a Ubuntu, aquests errors són habituals en un servidor virtual basat en núvol.

Corregiu l'error instal·lant el paquet Linux-image-extra-virtual mitjançant l'ordre apt.

quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //quota.user: No such file or directory

L'error és notable quan l'usuari actual no té permís per llegir fitxers de quota. Com a administrador, només cal que feu els canvis de permís correctes o utilitzeu sudo quan necessiteu accedir als fitxers d'un sistema o fitxer de quotes.

A la part superior de l'article, vam començar amb les eines de línia d'ordres de quota i la verificació de la versió del nucli i vam anar més enllà per explicar com configurar una quota basada en blocs per a un sol usuari i com generar un informe sobre una quota del sistema de fitxers. ús.

L'article també tracta els errors comuns i com evitar-los utilitzant un paquet addicional o verificant la versió del nucli al vostre sistema.