Cómo establecer cuotas del sistema de archivos en Debian 10

Introducción

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1 – Instalación de las herramientas de cuotas
  • Paso 2: Actualización de las opciones de montaje del sistema de archivos
  • Paso 3 – Habilitación de cuotas
  • Paso 4 – Configuración de cuotas para un usuario
    1. Uso edquotapara establecer una cuota de usuario
    2. Uso setquotapara establecer una cuota de usuario
  • Paso 5: Generación de informes de cuotas
  • Paso 6 – Configuración de un período de gracia para excedentes
  • Conclusión
    1. Apéndice: Mensajes de error comunes relacionados con las cuotas
  • Las cuotas se utilizan para limitar la cantidad de espacio en disco que un usuario o un grupo puede utilizar en un sistema de archivos. Sin estos límites, un usuario podría llenar el disco de la máquina y causar problemas a otros usuarios y servicios.

    En este tutorial instalaremos herramientas de línea de comandos para crear e inspeccionar cuotas de disco y luego estableceremos una cuota para un usuario de ejemplo.

    Prerrequisitos

    Este tutorial asume que ha iniciado sesión en un servidor Debian 10, con un usuario no root y con sudo habilitado, como se describe en Configuración inicial del servidor con Debian 10.

    Las técnicas de este tutorial generalmente deberían funcionar en distribuciones de Linux distintas de Debian, pero pueden requerir alguna adaptación.

    Paso 1 – Instalación de las herramientas de cuotas

    Para configurar y verificar las cuotas, primero debemos instalar las herramientas de línea de comandos de cuotas mediante apt. Actualicemos nuestra lista de paquetes y luego instalemos el paquete:

    sudo apt updatesudo apt install quota

    Puede verificar que las herramientas estén instaladas ejecutando el quotacomando y solicitando información de su versión:

    quota --version
    OutputQuota utilities version 4.04.. . .

    Está bien si el resultado muestra un número de versión ligeramente diferente.

    A continuación actualizaremos mountlas opciones de nuestro sistema de archivos para habilitar cuotas en nuestro sistema de archivos raíz .

    Paso 2: Actualización de las opciones de montaje del sistema de archivos

    Para activar las cuotas en un sistema de archivos en particular, debemos montarlo con algunas opciones relacionadas con las cuotas especificadas. Para ello, actualizamos la entrada del sistema de archivos en el /etc/fstabarchivo de configuración. Abra ese archivo en su editor de texto favorito ahora:

    sudo nano /etc/fstab

    El contenido del archivo será similar al siguiente:

    /etc/fstab

    # /etc/fstab: static file system information.UUID=06b2aae3-b525-4a4c-9549-0fc6045bd08e/ext4errors=remount-ro01

    Este fstabarchivo es de un servidor virtual. Una computadora de escritorio o portátil probablemente tendrá un aspecto ligeramente diferente fstab, pero en la mayoría de los casos tendrá un /sistema de archivos raíz que representa todo el espacio de su disco.

    Actualice la línea que apunta al sistema de archivos raíz agregando opciones como las siguientes:

    /etc/fstab

    # /etc/fstab: static file system information.UUID=06b2aae3-b525-4a4c-9549-0fc6045bd08e/ext4errors=remount-ro,usrquota,grpquota01

    Agregará las nuevas opciones al final de las opciones existentes, asegurándose de separarlas con una coma y sin espacios. El cambio anterior nos permitirá habilitar cuotas usrquotabasadas en usuarios ( ) y grupos ( grpquota) en el sistema de archivos. Si solo necesita una u otra, puede omitir la opción no utilizada.

    Vuelva a montar el sistema de archivos para que las nuevas opciones surtan efecto:

    sudo mount -o remount /

    Nota: Asegúrese de que no haya espacios entre las opciones que aparecen en el /etc/fstabarchivo. Si coloca un espacio después de la ,coma, verá un error como el siguiente:

    Outputmount: /etc/fstab: parse error at line 2 -- ignored

    Si ve este mensaje después de ejecutar el mountcomando anterior, vuelva a abrir el fstabarchivo, corrija los errores y repita el mountcomando antes de continuar.

    Podemos verificar que se usaron las nuevas opciones para montar el sistema de archivos observando el /proc/mountsarchivo. Aquí, usamos greppara mostrar solo la entrada del sistema de archivos raíz en ese archivo:

    cat /proc/mounts | grep ' / '
    Output/dev/vda1 / ext4 rw,relatime,quota,usrquota,grpquota,errors=remount-ro,data=ordered 0 0

    Tenga en cuenta las dos opciones que especificamos. Ahora que hemos instalado nuestras herramientas y actualizado las opciones del sistema de archivos, podemos activar el sistema de cuotas.

    Paso 3 – Habilitación de cuotas

    Antes de activar definitivamente el sistema de cuotas, debemos ejecutar manualmente el quotacheckcomando una vez:

    sudo quotacheck -ugm /

    Este comando crea los archivos /aquota.usery /aquota.group. Estos archivos contienen información sobre los límites y el uso del sistema de archivos, y deben existir antes de que activemos la supervisión de cuotas. Los quotacheckparámetros que hemos utilizado son:

    • u: especifica que se debe crear un archivo de cuota basado en el usuario
    • g: indica que se debe crear un archivo de cuota basado en grupos
    • m: deshabilita la posibilidad de volver a montar el sistema de archivos como de solo lectura mientras se realiza el recuento inicial de cuotas. Volver a montar el sistema de archivos como de solo lectura dará resultados más precisos en caso de que un usuario esté guardando archivos activamente durante el proceso, pero no es necesario durante esta configuración inicial.

    Si no necesita habilitar cuotas basadas en usuarios o grupos, puede omitir la quotacheckopción correspondiente.

    Podemos verificar que se crearon los archivos apropiados enumerando el directorio raíz:

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

    Si no incluyó las opciones uo gen el quotacheckcomando, no aparecerá el archivo correspondiente. Ahora estamos listos para activar el sistema de cuotas:

    sudo quotaon -v /
    Output/dev/vda1 [/]: group quotas turned on/dev/vda1 [/]: user quotas turned on

    Nuestro servidor ahora está monitoreando y aplicando cuotas, pero aún no hemos establecido ninguna. A continuación, estableceremos una cuota de disco para un solo usuario.

    Paso 4 – Configuración de cuotas para un usuario

    Existen varias formas de establecer cuotas para usuarios o grupos. Aquí veremos cómo establecer cuotas con los comandos edquotay setquota.

    Uso edquotapara establecer una cuota de usuario

    Usamos el edquotacomando para editar la cuota s. Editemos la cuota del usuario sammy de nuestro ejemplo:

    sudo edquota -u sammy

    La -uopción especifica que se trata de una usercuota que vamos a editar. Si, en cambio, deseas editar la cuota de un grupo, utiliza la -gopción correspondiente.

    Esto abrirá un archivo en el editor de texto predeterminado, de forma similar a cómo crontab -ese abre un archivo temporal para que lo edites. El archivo tendrá un aspecto similar al siguiente:

    Disk quotas for user sammy (uid 1001):  Filesystem                   blocks       soft       hard     inodes     soft     hard  /dev/vda1                        24          0          0          7        0        0

    Aquí se enumeran el nombre de usuario y uidlos sistemas de archivos que tienen habilitadas las cuotas, y el uso y los límites basados ​​en bloques e inodos. Establecer una cuota basada en inodos limitaría la cantidad de archivos y directorios que un usuario puede crear, independientemente de la cantidad de espacio en disco que utilice. La mayoría de las personas querrán cuotas basadas en bloques, que limitan específicamente el uso del espacio en disco. Esto es lo que configuraremos.

    Nota: El concepto de bloque no está bien especificado y puede cambiar dependiendo de muchos factores, incluida la herramienta de línea de comandos que los informa. En el contexto de la configuración de cuotas en Debian, es bastante seguro asumir que 1 bloque equivale a 1 kilobyte de espacio en disco.

    En la lista anterior, nuestro usuario sammy está usando 24 bloques, o 24 KB de espacio en la /dev/vda1unidad. Los límites softy hardestán deshabilitados con un 0valor.

    Cada tipo de cuota le permite establecer un límite flexible y un límite estricto. Cuando un usuario excede el límite flexible, excede la cuota, pero no se le impide inmediatamente consumir más espacio o inodos. En cambio, se le da un margen de maniobra: el usuario tiene, por defecto, siete días para recuperar el uso de su disco por debajo del límite flexible. Al final del período de gracia de siete días, si el usuario aún supera el límite flexible, se tratará como un límite estricto. Un límite estricto es menos indulgente: toda creación de nuevos bloques o inodos se detiene inmediatamente cuando se alcanza el límite estricto especificado. Esto se comporta como si el disco se hubiera quedado completamente sin espacio: las escrituras fallarán, los archivos temporales no se crearán y el usuario comenzará a ver advertencias y errores mientras realiza tareas comunes.

    Actualicemos nuestro usuario sammy para que tenga una cuota de bloque con un límite flexible de 100 MB y un límite estricto de 110 MB:

    Disk quotas for user sammy (uid 1001):  Filesystem                   blocks       soft       hard     inodes     soft     hard  /dev/vda1                        24       100M       110M          7        0        0

    Guardamos y cerramos el archivo. Para comprobar la nueva cuota podemos utilizar el quotacomando:

    sudo quota -vs sammy
    OutputDisk quotas for user sammy (uid 1001):     Filesystem   space   quota   limit   grace   files   quota   limit   grace      /dev/vda1     24K    100M    110M               7       0       0

    El comando muestra nuestro estado de cuota actual y muestra que nuestra cuota es 100Mmientras que nuestro límite es 110M. Esto corresponde a los límites flexibles y estrictos respectivamente.

    Nota: Si desea que sus usuarios puedan verificar sus propias cuotas sin tener sudoacceso, deberá darles permiso para leer los archivos de cuotas que creamos en el Paso 4. Una forma de hacer esto sería crear un usersgrupo, hacer que esos archivos sean legibles por el usersgrupo y luego asegurarse de que todos sus usuarios también estén incluidos en el grupo.

    Para obtener más información sobre los permisos de Linux, incluida la propiedad de usuarios y grupos, lea Introducción a los permisos de Linux

    Uso setquotapara establecer una cuota de usuario

    A diferencia de edquota, setquotaactualizará la información de cuota de nuestro usuario en un solo comando, sin un paso de edición interactiva. Especificaremos el nombre de usuario y los límites flexibles y estrictos para las cuotas basadas en bloques e inodos y, finalmente, el sistema de archivos al que se aplicará la cuota:

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

    El comando anterior duplicará los límites de cuota basados ​​en bloques de sammy0 0 a 200 megabytes y 220 megabytes. Los límites flexibles y rígidos basados ​​en inodos indican que no se deben establecer. Esto es necesario incluso si no estamos estableciendo ninguna cuota basada en inodos.

    Una vez más, usemos el quotacomando para comprobar nuestro trabajo:

    sudo quota -vs sammy
    OutputDisk quotas for user sammy (uid 1001):      Filesystem   space   quota   limit   grace   files   quota   limit   grace      /dev/vda1     24K    200M    220M               7       0       0

    Ahora que hemos establecido algunas cuotas, descubramos cómo generar un informe de cuotas.

    Paso 5: Generación de informes de cuotas

    Para generar un informe sobre el uso actual de la cuota para todos los usuarios en un sistema de archivos en particular, utilice el repquotacomando:

    sudo repquota -s /
    Output*** Report for user quotas on device /dev/vda1Block grace time: 7days; Inode grace time: 7days                        Space limits                File limitsUser            used    soft    hard  grace    used  soft  hard  grace----------------------------------------------------------------------root      --    981M      0K      0K          35234     0     0nobody    --   7664K      0K      0K              3     0     0ntp       --     12K      0K      0K              3     0     0_apt      --      8K      0K      0K              2     0     0debian    --     16K      0K      0K              4     0     0sammy     --     24K    200M    220M              7     0     0

    En este caso, estamos generando un informe para el sistema de archivos / raíz . El -scomando indica repquotaque se deben utilizar números legibles para humanos cuando sea posible. Hay algunos usuarios del sistema enumerados, que probablemente no tengan cuotas establecidas de manera predeterminada. Nuestro usuario sammy aparece en la parte inferior, con las cantidades utilizadas y los límites flexibles y estrictos.

    Observe también el Block grace time: 7daystexto destacado y la gracecolumna. Si nuestro usuario superaba el límite flexible, la gracecolumna mostraría cuánto tiempo le quedaba para volver a estar por debajo del límite.

    En el siguiente paso actualizaremos los períodos de gracia para nuestro sistema de cuotas.

    Paso 6 – Configuración de un período de gracia para excedentes

    Podemos configurar el período de tiempo en el que un usuario puede flotar por encima del límite flexible. setquotaPara ello, utilizamos el comando:

    sudo setquota -t 864000 864000 /

    El comando anterior establece los tiempos de gracia de bloqueo e inodo en 864000 segundos o 10 días. Esta configuración se aplica a todos los usuarios y ambos valores deben proporcionarse incluso si no utiliza ambos tipos de cuota (bloque vs. inodo).

    Tenga en cuenta que los valores deben especificarse en segundos.

    Ejecútelo repquotanuevamente para verificar que los cambios surtieron efecto:

    sudo repquota -s /
    OutputBlock grace time: 10days; Inode grace time: 10days. . .

    Los cambios deberían reflejarse inmediatamente en la repquotasalida.

    Conclusión

    En este tutorial instalamos las quotaherramientas de línea de comandos, configuramos una cuota basada en bloques para un usuario y generamos un informe sobre el uso de la cuota de nuestro sistema de archivos.

    Apéndice: Mensajes de error comunes relacionados con las cuotas

    Los siguientes son algunos errores comunes que puede ver al configurar y manipular las cuotas del sistema de archivos.

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

    Este es un error que puede aparecer si intentó activar las cuotas (usando quotaon) antes de ejecutar el quotacheckcomando inicial. El quotacheckcomando crea los archivos aquotao quotanecesarios para activar el sistema de cuotas. Consulte el paso 3 para obtener más información.

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

    Este es el error que verá si ejecuta quotay su usuario actual no tiene permiso para leer los archivos de cuotas de su sistema de archivos. Usted (o su administrador del sistema) deberá ajustar los permisos de archivo de manera adecuada o utilizarlos sudoal ejecutar comandos que requieran acceso al archivo de cuotas.

    Para obtener más información sobre los permisos de Linux, incluida la propiedad de usuarios y grupos, lea Introducción a los permisos de Linux

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion