Crear cuotas de espacio para usuarios y grupos

De Apuntes
Saltar a: navegación, buscar

Las cuotas permiten limitar la cantidad de espacio utilizado por los usuarios.

Se debe instalar el paquete quota.

En Debian/Ubuntu:

apt install quota

En Fedora/CentOS:

rpm -i quota

Luego se edita el archivo /etc/fstab para indicar cuál o cuales sistemas de archivos tendrán cuotas.

Añada las opciones usrquota y grpquota a las particiones respectivas. Por ejemplo:

/dev/mapper/home /home ext4 defaults,usrquota,grpquota 0 2

Antes de continuar debe remontar el sistema de archivos o reiniciar el servidor.

Cree los archivos aquota.user y aquota.group ejecutando:

quotacheck -cug /home

Donde:

  • c indica que se deben crear nuevos archivos de cuota.
  • u indica que se cree un archivo para la cuota de usuario.
  • g indica que se cree un archivo para la cuota de grupos.

Genere la tabla de uso del disco actual:

quotacheck -avug

El cual dará una salida como:

quotacheck: Scanning /dev/mapper/home [/home] done
quotacheck: Checked 26 directories and 14536 files

Donde

  • a indica que se comprueben todos los sistemas de archivos montados con cuota habilitada.
  • v muestra los detalles del proceso
  • u comprueba la cuota para usuarios
  • g comprueba la cuota para grupos

Asigne cuotas para cada usuario. El siguiente comando abrirá el archivo de configuración en su editor predeterminado:

edquota username

La primera columna muestra los sistemas de archivos con cuota. Luego se muestran los bloques utilizados seguido de los respectivos límites configurados, tanto suaves como duros, también se muestran los inodos utilizados seguidos de los respectivos límites suaves y duros configurados para estos.

El límite suave es flexible y solo mostrará una advertencia, el límite duro es definitivo y el usuario no podrá ocupar más allá de ese valor. Si los límites están configurados en 0, entonces no hay límite. Edite el archivo para configurar los límites según necesidad.

Los límites suaves tienen un período de gracia, que se configura con el siguiente comando:

edquota -t

Puede verificar las cuotas para cada usuario con:

quota username

Nota: para obtener el tamaño del bloque en bytes, ejecute:

blockdev --getbsz /dev/mapper/home

Un ejemplo:

Si cada bloque mide 4096 bytes y se quiere configurar un límite de 3GB se puede calcular así:

Se convierte el límite a bytes:
3 Gigabyte * 1024 * 1024 * 1024 = 3221225472 byte

Se calcula cuantos bloques de 4096 bytes ocupan 3GB:
3221225472 / 4096 = 786432 bloques

Para asignar cuotas a grupos, se sigue un proceso similar, pero editando con:

edquota -g groupname

Y para verificar ejecute:

quota -g groupname