Limitar la cuota de disco de los usuarios del sistema [Cuadernillo Técnico]

Establecer un límite o cuota de espacio disponible para almacenamiento en una partición determinada para los distintos usuarios de un sistema GNU/Linux puede ser de gran utilidad en muchos escenarios. En esta entrada voy a enfocarme especialmente en cómo implementar esta característica en una distribución de tipo Archlinux.

Instalar y habilitar

En primer lugar, instalamos los paquetes necesarios y editamos el archivo /etc/fstab

$ sudo pacman -S quota-tools

$ sudo nano /etc/fstab

/etc/fstab

/dev/sdaX /home ext4 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv2 1 1

Como se ve, hemos añadido las opciones para establecer el uso de cuotas para usuarios (usrjquota), grupos (grpjquota)y el formato (jqfmt) en la partición /dev/sdaX que el sistema monta en el punto /home.
Personalmente tengo preferencia por habilitar “Journaling” para las cuotas de disco y utilizo el formato vfsv2. Encontrarás más información sobre esto en https://wiki.archlinux.org/index.php/Disk_quota.

Lo siguiente será remontar la partición /home y crear el índice

$ su -
Contraseña:************

# mount -vo remount /home

# quotacheck -vgum /home
Verás que he tenido que cambiar la sesión en la consola e iniciar como root. Esto es necesario para poder remontar la partición /home. El comando quotacheck creará los archivos de índice aquota*. En caso que hayas habilitado cuotas para más de una partición, el comando correspondiente es quotacheck -vguma.

Finalmente, habilitamos el servicio:

# quotaon -av

 

Configurar

Para configurar las cutoas que deseamos establecer para cada usuario debemos ejecutar como root:

# edquota usuario
Reemplazando el usuario por el correspondiente a quien editaremos sus cuotas.
Disk quotas for user usuario (uid xxxx):
Filesystem   blocks     soft        hard        inodes    soft     hard
/dev/sda1    657313     10000000    15000000    100       0        0

Por último, establecemos el período de gracia para superar el valor soft de la cuota:

# edquota -t

 

¿Qué representan los valores en cada columna? Pues bien:

blocks/inodes: es la cantidad de datos en bloques/inodes que tiene escritos el usuario actualmente.

soft: es el límite de datos en Kilobytes (1GB=1.000.000KB) que el usuario puede escribir antes de ser advertido sobre el uso de su cuota. A partir de que el usuario alcance este valor, podrá continuar almacenando datos por encima del mismo durante el período de gracia establecido con edquota -t. El valor 0 implica “sin límite”.

hard: es el valor límite máximo que el usuario puede escribir en el disco, es decir, nunca podrá superar este valor. El valor 0 implica “sin límite”.

Las modificaciones en la configuración de las cuotas es un aspecto que requiere especial atención. Esto se debe a que si aumentamos el valor de las cuotas para un usuario, éste podrá aumentar su nivel de datos almacenados de manera inmediata y sin problema. Sin embargo, al reducir el valor de una cuota, si el usuario tiene actualmente una cantidad de datos escritos mayor al nuevo límite permitido, no podrá iniciar sesión en el sistema.

Por último les dejo una lista de comandos útiles:

$ repquota /particion
Indica las cuotas aplicadas a una determinada particion.
$ quota -u usuario

$ quota -g grupo
Indica la cuota que aplican a un usuario/grupo.
$ edquota -p usuario1 usuario2 usuarion

$ edqouta -g -p grupo1 grupo2 grupon
Copia la configuración de cuotas del usuario1 a los otros usuarios/grupos descritos.
$ quotastats
Muestra las estadísticas asociadas al uso de las cuotas.

 

Bueno, hasta acá esta entrega de mi Cuadernillo Técnico: anotaciones que he llevado a lo largo de varios años como ayuda memoria para configurar e implementar herramientas en mis sistemas GNU/Linux. Espero les sea de utilidad.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s