Cuotas de disco en Linux

En linux es posible establecer cuotas de disco por usuario y grupo, de forma que un cierto usuario solo pueda usar una porción de un sistema de archivos.

Para poder aplicar cuotas de desco sobre un cierto sistema de archivos, es preciso que sea montado con la opción usrquota (y opcionalmente la opción grpquota) activada. Para hacer esto, debemos añadir en fstab una línea dedicada para el punto de montaje y del sistema de archivos, y la opción mencionada activada. Por ejemplo, supongamos que contamos queremos aplicar cuotas de disco a /home. Entonces, el archivo /etc/fstab tendrá un aspecto parecido a este:

dev/VolGroup00/LogVol00 / xfs defaults 1 1 UUID=f520d6a6-813e-4b1d-a282-6996eb3dd225 /boot xfs defaults 1 2 /dev/VolGroup00/LogVol02 /home xfs defaults,usrquota,grpquota 1 2

Si acabamos de modificar fstab, entonces el volumen /dev/VolGroup00/LogVol02 no se habrá montado con las opciones usrquota y grpquota activadas. De hecho, podemos comprobar si se están aplicando las opciones mediante el comando siguiente:

mount | grep /home

Para que se apliquen las opciones, podemos hacer dos cosas:

  • Reiniciar el sistema para que se remonte la unidad.
  • Ejecutar el comando mount -o remount /punto/de/montaje.

Actividad 1. Añade un nuevo disco a tu sistema, y agrégale una partición. Después formatea dicha partición. Crea el punto de montaje /mnt/quotatest/. Después añade en fstab una entrada para que se monte automáticamente el sistema de archivos en la partición creada en dicho punto de montaje. Asegúrate de que tiene activadas las opciones para activar las cuotas de disco. Finalmente, monta la partición via fstab (indicando al comando mount el punto de montaje únicamente) y comprueba que las opciones usrquota y grpquota están activadas para el sistema de archivos.

Toma una captura donde se puedan ver las opciones para el punto de montaje, y guárdala con el nombre Act1-quotalinux.png.

Asignar una quota de disco a un usuario

Existen dos formas de establecer quotas de disco:

  • Cuota por espacio utilizado.
  • Cuota por número de archivos.

A su vez, por cada tipo de cuota, podemos establecer dos límites, llamados soft y hard:

  • El límite soft establece un límite que se puede superar por un tiempo preestablecido.
  • El límite hard no puede ser superado.

Si queremos establecer las cuotas de disco del usuario juan, podemos hacer lo siguiente:

edquota juan

NOTA: Si lo que queremos es asociar cuotas a un cierto grupo de usuarios, podemos utilizar el comando edquota -g nombregrupo.

Al ejecutar este comando, obtendremos una salida similar a esta:

Disk quotas for user juan (uid 1003): Filesystem blocks soft hard inodes soft hard /dev/sdb3 5120 0 0 5 0 0

En la salida anterior, estamos obteniendo la siguiente información:

  • El usuario juan solamente puede tener cuotas de disco en el sistema de archivos alojado en /dev/sdb3.
  • Se están ocupando 5120 bloques (5MB)
  • El usuario tiene un total de 5 archivos.
  • No hay cuotas establecidas

Supongamos que quisiéramos establecer una cuota soft de 18MB y una cuota hard de 20MB para este usuario. Entonces deberíamos modificar la línea anterior del siguiente modo:

Al ejecutar este comando, obtendremos una salida similar a esta:

Disk quotas for user juan (uid 1003): Filesystem blocks soft hard inodes soft hard /dev/sdb3 5120 18432 20480 5 0 0

Para terminar de editar las cuotas del usuario, debemos salir del mismo como si estuviésemos en vi, es decir, pulsando consecutivamente los siguientes caracteres:

  1. Pulsar la tecla ESC
  2. Pulsar la tecla :
  3. Escribir las letras wq
  4. Pulsar intro.

A partir de este momento ya se están aplicando las cuotas de disco.

Actividad 2. Partiendo del ejercicio 1, establece una cuota soft de 30MB y una cuota hard de 40MB para uno de los usuarios del sistema. Después comprueba que no puedes superar dicho límite cuando intentas superarlo. Para ello puedes usar el comando dd como ya hemos hecho anteriormente en otros temas.

Toma una captura del mensaje que te devuelve el sistema cuando intentas superar el límite hard, y llámalo Act2-quotalinux.png.

Actividad 3. Repite el ejercicio 2, pero estableciendo en este caso una cuota por el número de archivos. Dichas cuotas serán, una cuota soft de 10 archivos y una cuota hard de 15 archivos.

Toma una captura del mensaje que te devuelve el sistema cuando intentas superar el límite hard, y llámalo Act3-quotalinux.png.

Comprobando el estado de las cuotas

Suponiendo que el punto de montaje /punto/de/montaje contiene un sistema de archivos con cuotas, entonces podemos ver su estado mediante el comando siguiente:

repquota /punto/de/montaje

O bien, si queremos revisar el estado de las cuotas de todos los sistemas de archivos con cuotas activadas:

repquota -a

Actividad 4. Obten el estado de las cuotas para el punto de montaje con el que estás trabajando.

Toma una captura con el nombre Act4-quotalinux.png.

Modificando el periodo de gracia.

Cuando establecemos un límite soft, el periodo de gracia por defecto es de 7 días. Podemos modificar este periodo mediante el comando edquota -t.

Actividad 5. Cambia el periodo de gracia a 2 días. Después supera el límite soft, y comprueba, mediante repquota el periodo de gracia del usuario.

Toma una captura donde se pueda ver el nuevo periodo, y guárdala con el nombre Act5-quotalinux.png