Cuotas de disco en Linux

Hoy vamos a tratar un tema clásico, que aunque parezca en desuso es de suma importancia, esto es, las cuotas de disco en Linux. Aunque los discos en lo que respecta al espacio son enormes, siempre viene bien administrar su uso.

Cuotas de disco en Linux

Para la ocasión voy a utilizar un sistemas operativo CentOS, en su versión 7.2 de 64 bits. Intentaré no ir mucho por las ramas, para que el artículo sea didáctico a la vez que útil. Antes de empezar debemos verificar que el kernel de nuestro sistema soporta cuotas. Para ello deberá tener insertado en el núcleo un driver que lo permita. En el sistema que voy a utilizar ya viene el módulo.

Empezamos modificando el ficherto /etc/fstab. Yo tengo un sólo punto de montaje, que es el que viene por defecto en la máquina virtual, sobre la raíz o «/». Debemos añadir los parámetros «usrquota,grpquota» Eso sí, lo ideal es realizar el montaje sobre /home o algún punto de montaje diferente que la raíz.

  1. UUID=c4a662b3-efba-485b-84a6-26e1477a6825 /   ext4    defaults,usrquota,grpquota        1 1

Para que los cambios se hagan efectivos debemos escribir:

  1. mount -o remount /

Una de las herramientas que incopora el sistema para la administración de cuotas es ‘quotachek‘, lo vamos a utilizar para crear las cuotas:

  1. quotacheck -cugv /

En mi caso me ha devulto un error el sistema diciendo que el paquete no se encuentra disponible. Para solucionarlo vamos a instalar el conjunto de herramientas, con ‘yum install quota

He utilizado varios argumentos con el comando, aquí los explico:

  • -c Crear el fichero de cuotas si esto no existe
  • -v Vemos información ampliada
  • -u Cuota de usuario de disco
  • -g Cuota de grupo de disco

Asignar cuotas de disco

Sigamos, para asignar la cuota a un usuario, escribimos:

  1. groupadd usuarios
  2. adduser -m -g usuarios Teresa
  3. edquota -u Teresa

Primero hemos creado el grupo usuarios y el usuario asignado a dicho grupo, por último, utilizando el comando ‘edquota‘, le asignamos dicha cuota. Al hacer esto nos aparecerá nuestro editor de texto favorito, con los datos del usuario, con diferentes campos, que son:

  • Filesystem. Vemos la partición con la que estamos trabajando.
  • blocks. Nos indica el número de bloques que ocupa actualmente el usuario. Si actualmente los bloques son, por poner un ejemplo, de 1024 bytes, y nuesto usuario está ocupando 16, significa que ocupa 16 MB aproximadamente.
  • soft. Aquí indicamos el número máximo de bloques que puede utilizar Teresa, hasta que se le muestre un aviso. Si indica ‘0’ es ilimitado.
  • hard. Lo mismo que el apartado anterior, pero ahora es el número máximo de bloques, que nunca podrá sobrepasar.
  • inodes. Se puede limitar el usuario de disco por su espacio o los inodos. En mi caso está ocupando Teresa 6 inodos.  Es un tema más complejo que quizás tocaré más adelante.

De momento sólo nos centraremos en modificar los campos ‘soft‘ y ‘hard‘. Hemos visto el caso de un usuario, podemos hacer lo mismo con un grupo:

  1. edquota -g usuarios

Si queremos ver la información sobre las cuotas, utilizaremos el comando ‘repquota‘ :

  1. repquota -a

Al final podemos ver el usuario Teresa, con un aviso a los 5 GB y un tope de 7 GB que nunca podrá pasar.

Muestra resultado repquota

Muestra resultado repquota

Por último, para que todo este en marcha «encenderemos» las cuotas:

  1. quotaon -a

Una nota, aunque el usuario sobrepase el máximo, el sistema le dará un periodo, llamado de gracia, que generalmente será de siete días.  Se puede modificar escribiendo ‘edquota -t

El artículo de hoy va para mis apuntes y además que os pueda ser utilidad en algún momento.

Al César lo que es del César, para escribir el artículo, he utilizado la máquina virtual comentado al principio en DigitalOcean, además de las fuentes:

Linux Shell Manual Práctico, edición especial de la extinta Linux Magazine, en su edición en castellano. Sigue en inglés.

Y la web Linuxtechi.

Nos leemos en la próxima 😉