Búsqueda de sitios web

Cómo establecer cuotas del sistema de archivos (disco) en Ubuntu


La cuota del sistema de archivos es una característica estándar incorporada que se encuentra en el kernel de Linux. Las cuotas determinan la cantidad de espacio que debe tener un archivo para respaldar las actividades del usuario. Las cuotas de disco también limitan la cantidad de archivos que un usuario puede crear en el sistema.

Los sistemas de archivos que admiten el sistema de cuotas incluyen xfs, ext2, ext4 y ext3, por mencionar algunos. La asignación de cuotas es específica del sistema de archivos y de cada usuario. Este artículo contiene todo lo que necesita saber sobre cómo trabajar con el sistema de archivos de cuotas en un entorno Ubuntu multiusuario.

La suposición aquí es que está utilizando el sistema Ubuntu con un usuario (tecmint) con derechos sudo. Las ideas compartidas aquí pueden funcionar en cualquier distribución de Linux siempre que utilice la técnica de implementación adecuada.

Paso 1: instalar cuota en Ubuntu

Para que las cuotas estén listas y utilizables, instale la herramienta de línea de comandos quota usando el comando apt, pero antes de eso, debe actualizar los paquetes de software del sistema.

sudo apt update

Ahora use el siguiente comando para instalar el paquete quota en Ubuntu.

sudo apt install quota

Presione Y y luego ENTER para que comience el proceso de instalación.

Confirme la versión de instalación ejecutando el siguiente comando. Su número de versión puede diferir del que ve a continuación.

quota --version

Paso 2: Instalar el módulo para el kernel de cuota

Para aquellos que ejecutan un sistema virtual basado en la nube, es posible que a la instalación predeterminada de Ubuntu le falten los módulos del kernel que admiten el uso de cuotas. Debe confirmar utilizando la herramienta de búsqueda y asegurarse de que los dos módulos, quota_v1 y quota _v2, estén dentro del directorio /lib/modules.

find /lib/modules/`uname -r` -type f -name '*quota_v*.ko*'

Este debería ser el resultado del comando anterior.

No se preocupe por las versiones del kernel siempre que los dos módulos estén presentes. Si no lo encuentra, use el siguiente comando para instalar los módulos del kernel de cuota como se muestra.

sudo apt install linux-image-extra-virtual

Obtendrá los módulos adecuados que necesita para la implementación de cuotas.

Paso 3: Actualizar las opciones de montaje del sistema de archivos

Para que las cuotas estén activas en un sistema específico, se debe montar con opciones de cuota relacionadas. Puede hacerlo actualizando la entrada del sistema de archivos que se encuentra en el archivo /etc/fstab.

sudo nano /etc/fstab

Debería estar listo para editar el archivo adecuadamente. La diferencia entre un archivo fstab y uno de escritorio es la diferencia en cómo el / o sistema de archivos raíz representa todo el espacio en disco. Reemplace la línea (/) que apunta al sistema raíz usando las líneas siguientes.

LABEL=cloudimg-rootfs   /        ext4   usrquota,grpquota        0 0

Las líneas cambiarán para permitir que userquota y grpquota sean accesibles. Puedes dejar uno que no forme parte de la configuración final. Si el fstab tenía algunas opciones, agregue las nuevas opciones al final de la línea. Mientras agregas, separa los nuevos elementos con una coma pero sin espacios entre ellos.

Vuelva a montar el sistema de archivos para que los cambios surtan efecto.

sudo mount -o remount /

NOTA: confirme que no existen espacios entre las opciones en /etc/fstab para evitar este tipo de errores.

mount: /etc/fstab: parse error

La verificación del uso de nuevas opciones al montar el sistema de archivos en el archivo /proc/mounts se realiza a través de grep. El comando muestra la entrada del sistema de archivos raíz en el archivo.

sudo cat /proc/mounts | grep ' / '

Desde el resultado, puede ver las dos opciones que configuramos. Es hora de activar el sistema de cuotas.

Paso 4: habilitar cuotas de disco en Ubuntu

Primero, debes ejecutar el comando quotacheck.

sudo quotacheck -ugm /

El comando crea dos archivos, un usuario de cuota y un grupo de cuota, que tienen información sobre el límite y el uso del sistema de archivos. Estos archivos deben estar presentes antes de comenzar a utilizar la cuota.

Aquí hay una definición de los parámetros:

  • -u: simboliza que se creará un archivo de cuota basado en el usuario.
  • -g: indica que se creará un archivo de cuota basado en grupos.
  • -m: desactiva el remontaje del sistema de archivos como de solo lectura y al mismo tiempo proporciona resultados precisos en un entorno donde el usuario sigue guardando archivos. La opción m no es obligatoria durante la configuración.

Cuando no es necesario habilitar el uso de cuotas basadas en usuario o grupo, no es necesario ejecutar la opción quotacheck. Confirme esto enumerando el directorio raíz usando el comando ls.

ls /
Salida de muestra
aquota.group  bin   dev  home        initrd.img.old  lib64       media  opt   root  sbin  srv  tmp  var      vmlinuz.old
aquota.user   boot  etc  initrd.img  lib             lost+found  mnt    proc  run   snap  sys  usr  vmlinuz

Si no se incluyen los parámetros u y g en el comandoquotacheck, faltarán los archivos correspondientes.

Ahora estamos listos para activar la cuota en el sistema de archivos raíz (/) con el siguiente comando.

sudo quotaon -v /

Paso 5: configurar cuotas para un solo usuario

Podemos usar los comandos edquota y setquota para configurarlos para usuarios o grupos.

Usando cuotaed

Los comandos edquota editan cuotas, por ejemplo, podemos editar una cuota que pertenece a un usuario tecmint usando:

sudo edquota -u tecmint

El uso de la opción -u especifica que la cuota pertenece a un usuario. Utilice la opción -g si necesita editar una cuota que pertenece a un grupo. El comando abrirá un archivo usando el editor de texto que elija.

El resultado enumera el nombre de usuario, el uid, el sistema de archivos con cuotas activas y el uso de bloques e inodos. Una cuota basada en inodos limita la cantidad de archivos y directorios que los usuarios pueden crear independientemente del tamaño que utilicen en el disco. La mayoría de los administradores prefieren la cuota basada en bloques que controla el espacio en disco.

NOTA: El uso de bloques no muestra cómo puede cambiar dependiendo de diferentes factores, como la herramienta de línea de comandos que los informa. Dentro de las cuotas de contexto en Ubuntu, podemos asumir que un solo bloque equivale a un kilobyte de espacio en disco.

Usando la línea de comando anterior, el usuario usará 2032 bloques, lo que equivale a 2032 KB de espacio en /dev/sda1. El valor 0 deshabilita los límites estrictos y flexibles.

Cada conjunto de cuotas permite establecer límites estrictos y flexibles. Un usuario que supere el límite flexible puede superar su cuota, pero no se le prohibirá usar más espacios o inodos. En tal caso, el usuario tiene siete días para canjear su espacio límite flexible; de lo contrario, será difícil guardar o crear archivos.

Un límite estricto significa que la creación de nuevos bloques o inodos se detiene en el momento en que alcanzas el límite. Los usuarios informarán haber visto advertencias o errores mientras realizan tareas habituales.

Podemos actualizar la cuota de bloque de tecmint para tener un límite flexible de 100 MB y 110 MB para el límite estricto.

Después de editarlo, cierre el archivo y verifique la configuración del límite de cuota del nuevo usuario usando el comando de cuota.

sudo quota -vs tecmint

NOTA: Para que sus usuarios tengan la oportunidad de analizar sus cuotas sin invocar el comando sudo, se les debe dar acceso para leer archivos de cuota durante el proceso. fase de creación en el paso cuatro. Una forma sencilla de hacerlo es crear un grupo de usuarios y darle acceso al grupo para que pueda agregarle usuarios.

Usando establecer cuota

setquota actualiza la información de la cuota mediante un único comando sin ninguna configuración interactiva. El comando requiere el nombre de usuario y la configuración de los límites blandos y estrictos que utilizarán el bloque y el inodo. También deberá declarar el sistema de archivos que utilizará la cuota.

sudo setquota -u tecmint 200M 220M 0 0 /

El comando duplica los límites de cuota basados en bloques a 200 megabytes y 220 megabytes. Los dos 0 0 indican que los límites estrictos y flexibles no están establecidos; es un requisito incluso cuando no es necesario establecer cuotas basadas en inodos.

Como de costumbre, utilice el comando de cuota para verificar su progreso.

sudo quota -vs tecmint

Paso 6: Generar informes de cuotas

La generación de un informe de cuota debe indicar el uso de todos los usuarios. Se utiliza el comando repquota.

sudo repquota -s /

El resultado anterior es un informe sobre el sistema de archivos raíz /. El -s indica a repquota que proporcione resultados en un formato legible por humanos.

El tiempo de gracia de bloqueo predeterminado es 7 días. La columna de gracia alerta al usuario sobre la cantidad de días antes de la denegación de acceso al disco de recursos.

Paso 7: Establecer los períodos de gracia de configuración

El período de gracia es el tiempo que un usuario obtiene permiso para trabajar más allá del tiempo predeterminado.

sudo setquota -t 864000 864000 /

El comando indica al bloque y al inodo que tengan un período de gracia de 864000 segundos, equivalente a 10 días. La configuración afectará a todos los usuarios, por lo tanto, es necesario establecer valores incluso cuando no se vayan a utilizar bloques e inodos. El valor del tiempo debe estar en segundos.

Confirme los cambios y vea si surtieron efecto usando el comando:

sudo repquota -s /

Mensajes de errores comunes

quotaon: cannot find //aquota.group on /dev/vda1 [/]
quotaon: cannot find //aquota.user on /dev/vda1 [/]

El error anterior es común si intenta activar cuotas usando el comando qoutaon antes de intentar verificar el estado de una cuota usando el comando quotacheck.

quotaon: using //aquota.group on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.
quotaon: using //aquota.user on /dev/vda1 [/]: No such process
quotaon: Quota format not supported in kernel.

Este error le dice al administrador que el kernel no lo admite o que podría tener la versión incorrecta en la máquina (tenemos quota_v1 y quota_v2). Para Ubuntu, estos errores son típicos en un servidor virtual basado en la nube.

Corrija el error instalando el paquete Linux-image-extra-virtual usando el comando apt.

quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //aquota.user: Permission denied
quota: Cannot open quotafile //quota.user: No such file or directory

El error es notable cuando el usuario actual no tiene permiso para leer archivos de cuota. Como administrador, solo necesita realizar los cambios de permisos correctos o usar sudo cuando necesite acceder a archivos en un sistema o archivo de cuotas.

Conclusión

Al principio del artículo, comenzamos con las herramientas de línea de comandos quota y la verificación de la versión del kernel y continuamos explicando cómo configurar una cuota basada en bloques para un solo usuario y cómo generar un informe sobre el uso de cuota del sistema de archivos.

El artículo también cubre errores comunes y cómo evitarlos usando un paquete adicional o verificando la versión del kernel en su sistema.