--- title: "Cómo configurar cuotas de disco por usuario en Ubuntu 24.04" description: "Activa las cuotas de disco en un sistema de archivos ext4 de Ubuntu 24.04, limita el espacio y los archivos de cada usuario o grupo y revisa el uso." category: "Gestión de Almacenamiento" language: es source: https://cubepath.com/es/docs/gestión-de-almacenamiento/cuotas-de-disco-en-linux-quota updated: 2026-09-25 --- # Cómo configurar cuotas de disco por usuario en Ubuntu 24.04 Las cuotas de disco limitan cuánto espacio y cuántos archivos puede ocupar cada usuario o grupo en un sistema de archivos. Son útiles en servidores compartidos por varios usuarios, como un servidor SFTP, un hosting con varias cuentas o un servidor de archivos, donde un solo usuario no debería poder llenar el disco de todos. En este tutorial activarás las cuotas en un sistema de archivos ext4 de Ubuntu 24.04, asignarás límites a usuarios y grupos, comprobarás que se aplican y aprenderás a revisar el uso. ## Requisitos previos Para seguir esta guía necesitas: - Un servidor con Ubuntu 24.04 LTS, por ejemplo un VPS de CubePath. - Un usuario no root con privilegios `sudo`. - Un sistema de archivos **ext4** donde aplicar las cuotas. En los ejemplos se usa la raíz `/`, que es donde están los directorios personales en una instalación estándar. Si prefieres aplicarlas a un disco de datos, sustituye `/` por su punto de montaje (por ejemplo `/datos`). - Acceso a la consola del proveedor por si fuera necesario recuperar el arranque tras editar `/etc/fstab`. Algunos conceptos que usarás en toda la guía: | Término | Significado | | --- | --- | | Límite de bloques | Espacio máximo, expresado en bloques de 1 KiB (o con sufijos `M`, `G`). | | Límite de inodos | Número máximo de archivos y directorios. | | Límite blando (soft) | Puede superarse temporalmente, durante el periodo de gracia. | | Límite duro (hard) | No puede superarse nunca: la escritura falla con `Disk quota exceeded`. | | Periodo de gracia | Tiempo durante el que se tolera superar el límite blando. Al agotarse, el límite blando pasa a comportarse como duro. | ## Paso 1: Instalar las herramientas de cuotas Instala el paquete `quota`, que incluye `quotacheck`, `quotaon`, `setquota`, `edquota` y `repquota`: ```bash sudo apt update sudo apt install quota ``` Comprueba la versión instalada: ```bash quota --version ``` ```output Quota utilities version 4.06. ``` ## Paso 2: Comprobar los módulos del kernel El formato de cuotas que usarás necesita los módulos `quota_v2` y `quota_tree`. Comprueba que existen para el kernel en ejecución: ```bash find /lib/modules/$(uname -r) -type f -name 'quota_v*.ko*' ``` ```output /lib/modules/6.8.0-45-generic/kernel/fs/quota/quota_v2.ko.zst /lib/modules/6.8.0-45-generic/kernel/fs/quota/quota_v1.ko.zst ``` Si el comando no devuelve nada, los módulos están en el paquete de módulos extra de tu kernel. Instálalo y reinicia para asegurarte de que el kernel y los módulos coinciden: ```bash sudo apt install linux-modules-extra-$(uname -r) sudo reboot ``` ## Paso 3: Activar las opciones de cuota en fstab Las cuotas se activan por sistema de archivos con las opciones de montaje `usrquota` (cuotas de usuario) y `grpquota` (cuotas de grupo). Haz una copia de `/etc/fstab` y ábrelo: ```bash sudo cp /etc/fstab /etc/fstab.bak sudo nano /etc/fstab ``` Localiza la línea del sistema de archivos y añade las dos opciones a las que ya tiene, separadas por comas. En una imagen cloud de Ubuntu la línea de la raíz quedaría así: ```text LABEL=cloudimg-rootfs / ext4 discard,errors=remount-ro,usrquota,grpquota 0 1 ``` No cambies el resto de campos. Valida el archivo y vuelve a montar el sistema de archivos para aplicar las opciones sin reiniciar: ```bash sudo findmnt --verify sudo systemctl daemon-reload sudo mount -o remount / ``` Comprueba que las opciones están activas: ```bash findmnt -no OPTIONS / ``` ```output rw,relatime,discard,errors=remount-ro,usrquota,grpquota ``` ## Paso 4: Crear los archivos de cuota y activarlas `quotacheck` recorre el sistema de archivos, calcula el uso actual de cada usuario y grupo y crea los archivos `aquota.user` y `aquota.group` en la raíz del sistema de archivos: ```bash sudo quotacheck -ugm / ``` Las opciones son `-u` para usuarios, `-g` para grupos y `-m` para no intentar volver a montar el sistema de archivos en solo lectura, algo imposible en la raíz. En discos grandes puede tardar unos minutos. Comprueba que se crearon los archivos: ```bash ls -l /aquota.* ``` ```output -rw------- 1 root root 7168 sep 25 11:02 /aquota.group -rw------- 1 root root 7168 sep 25 11:02 /aquota.user ``` Activa las cuotas: ```bash sudo quotaon -v / ``` ```output /dev/vda1 [/]: group quotas turned on /dev/vda1 [/]: user quotas turned on ``` Al arrancar, el servicio `quota.service` del paquete `quota` vuelve a activarlas automáticamente para todos los sistemas de archivos con estas opciones en `fstab`. Puedes consultar el estado en cualquier momento con: ```bash sudo quotaon -pa ``` ## Paso 5: Asignar una cuota a un usuario `setquota` fija los límites en una sola línea, con el formato `setquota -u usuario bloques_blando bloques_duro inodos_blando inodos_duro sistema_de_archivos`. Un `0` significa sin límite. Crea un usuario de prueba y dale 1 GB de límite blando y 1,2 GB de límite duro, sin límite de archivos: ```bash sudo adduser --disabled-password --gecos "" usuario_prueba sudo setquota -u usuario_prueba 1G 1200M 0 0 / ``` Consulta la cuota del usuario. La opción `-s` muestra las cifras en unidades legibles: ```bash sudo quota -vs usuario_prueba ``` ```output Disk quotas for user usuario_prueba (uid 1001): Filesystem space quota limit grace files quota limit grace /dev/vda1 28K 1024M 1200M 7 0 0 ``` Si prefieres editar los límites de forma interactiva, `sudo edquota -u usuario_prueba` abre un editor con la misma información; ahí los bloques se expresan en KiB. ## Paso 6: Comprobar que la cuota se aplica Como el usuario de prueba, intenta crear un archivo mayor que su límite duro: ```bash sudo -u usuario_prueba fallocate -l 1500M /home/usuario_prueba/grande.bin ``` ```output fallocate: fallocate failed: Disk quota exceeded ``` Crea ahora un archivo que supere el límite blando sin llegar al duro: ```bash sudo -u usuario_prueba fallocate -l 1100M /home/usuario_prueba/medio.bin sudo quota -vs usuario_prueba ``` ```output Disk quotas for user usuario_prueba (uid 1001): Filesystem space quota limit grace files quota limit grace /dev/vda1 1101M* 1024M 1200M 6days 8 0 0 ``` El asterisco indica que se ha superado el límite blando, y la columna `grace` muestra el tiempo que queda antes de que se bloquee la escritura. Borra el archivo de prueba: ```bash sudo rm /home/usuario_prueba/medio.bin ``` ## Paso 7: Asignar cuotas de grupo y ajustar el periodo de gracia Las cuotas de grupo suman el uso de todos los archivos que pertenecen a ese grupo, independientemente de su propietario. Para limitar el grupo `desarrollo` (créalo antes con `sudo groupadd desarrollo` si no existe) a 10 GB blandos y 12 GB duros, con un máximo de 200 000 archivos: ```bash sudo setquota -g desarrollo 10G 12G 180000 200000 / sudo quota -vsg desarrollo ``` El periodo de gracia por defecto es de 7 días y es común a todo el sistema de archivos. Para cambiarlo, usa `setquota -t` con los segundos para bloques e inodos. Este ejemplo lo fija en 3 días (259 200 segundos) para usuarios y para grupos: ```bash sudo setquota -t -u 259200 259200 / sudo setquota -t -g 259200 259200 / ``` Para aplicar a muchos usuarios la misma cuota, configura uno como plantilla y copia sus límites a otros usuarios existentes con `edquota -p`: ```bash sudo edquota -p usuario_prueba -u ana luis marta ``` ## Paso 8: Revisar el uso de las cuotas `repquota` muestra un informe con todos los usuarios que tienen uso o límites en el sistema de archivos: ```bash sudo repquota -s / ``` ```output *** Report for user quotas on device /dev/vda1 Block grace time: 3days; Inode grace time: 3days Space limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 11.2G 0K 0K 98k 0 0 usuario_prueba -- 28K 1024M 1200M 7 0 0 ``` Los dos guiones tras el nombre indican el estado de los límites de espacio y de archivos: `-` significa dentro del límite y `+` que se ha superado el blando. Añade `-g` para ver las cuotas de grupo. Cada usuario puede consultar la suya sin `sudo` ejecutando `quota -s`. ## Solución de problemas **`quotaon: using //aquota.user on /dev/vda1 [/]: No such process`** o **`Quota format not supported in kernel`**: faltan los módulos `quota_v2`. Repite el paso 2 e instala `linux-modules-extra` para tu kernel. **`quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option`**: las opciones `usrquota,grpquota` no están activas. Comprueba `findmnt -no OPTIONS /` y vuelve a montar con `sudo mount -o remount /`. **Las cuotas no se aplican tras un reinicio**: comprueba que las opciones siguen en `/etc/fstab` y el estado del servicio con `systemctl status quota`. Actívalas manualmente con `sudo quotaon -v /`. **Un usuario no puede escribir con espacio disponible**: puede haber alcanzado el límite de inodos. Revisa la columna `files` en `sudo quota -vs usuario`. **Las cifras no cuadran con el uso real**: si el sistema se apagó de forma incorrecta, recalcula el uso desactivando las cuotas, ejecutando de nuevo `quotacheck` y reactivándolas: `sudo quotaoff -v /`, `sudo quotacheck -ugm /` y `sudo quotaon -v /`. ## Conclusión Has activado las cuotas de usuario y de grupo en un sistema de archivos ext4 de Ubuntu 24.04, has asignado límites blandos y duros, has comprobado que se aplican y sabes revisar el uso con `repquota`. Como siguientes pasos, puedes establecer una cuota base para cada usuario nuevo copiándola desde un usuario plantilla, aplicar cuotas a un disco de datos dedicado en lugar de la raíz, o incluir `repquota` en un informe periódico para detectar usuarios que se acercan a su límite.