fbpx Cuotas de disco en Linux: configurar cuotas por usuario | Certificação Linux

Cuotas de disco en Linux: configurar y gestionar cuotas por usuario

📅 01/01/2019 ⏱ 8 min ✍️ Uira Ribeiro
Linuxcomandos
Cuotas de disco en Linux: configurar y gestionar cuotas por usuario
Exam Pass App — mais de 7.000 questões LPI, offline, em 5 idiomas, disponível no Android e na App Store
Disponible en
Google Play
Disponible en
App Store

Existe la posibilidad de habilitar cuotas en Linux para gestionar mejor el espacio disponible en disco. Este recurso es especialmente importante en entornos multiusuario, servidores web, servidores de archivos, servidores de correo, etc.

En la gestión de cuotas es posible definir la cantidad de espacio en disco para cada usuario o grupo de usuarios.

Es preciso habilitar la gestión de cuotas antes de utilizar este recurso.
Vea los pasos a continuación:

1) Es preciso que el soporte para cuotas esté compilado en el Kernel.
2) Edite el archivo /etc/fstab y agregue la gestión de cuota para usuario (usrquota) y para grupo (grpquota) en el dispositivo deseado.

$ vi /etc/fstab
/dev/hda6 /home ext2 defaults,usrquota,grpquota 1 2

3) Cree el archivo quota.user y quota.group en el directorio /home con el comando "quotacheck –cug" y configure los permisos de lectura y escritura únicamente para el superusuario. En algunas distribuciones estos archivos tienen los nombres aquota.user y aquota.group. Estos dos archivos serán las bases de datos para las cuotas de usuario y grupo respectivamente.

Para crear los archivos de cuotas manualmente:

$ touch /home/quota.user
$ touch /home/quota.group
$ chmod 600 /home/quota.user
$ chmod 600 /home/quota.group

O

$ quotacheck -cug

4) Ejecute el comando quotacheck –avug para iniciar la base de datos recién creada.

5) Verifique si la base de datos se inició. Los archivos quota.user y quota.group no deben tener tamaño cero.

$ ls –lga /home

6) Habilite el servicio de cuotas:

$ quotaon -a

7) Asegúrese de que el servicio de cuotas se habilite en el arranque. Si no existe el archivo /etc/rc.d/quotas, cree un archivo de script:

$ vi /etc/rc.d/quotas
#!/bin/bash
/sbin/quotaon -avug

Cambie los permisos a 755:

$ chmod 755 /etc/rc.d/quotas

Cree el enlace simbólico para el archivo de cuotas para el runlevel 3 y runlevel 5:

$ ln –s /etc/rc.d/quotas /etc/rc.d/rc3.d/S20quotas
$ ln –s /etc/rc.d/quotas /etc/rc.d/rc5.d/S20quotas

8) Realice una verificación del sistema de cuotas una vez por semana colocando el comando quotacheck en el cron del root:

$ crontab –e
0 3 * * 0 /sbin/quotacheck –avug

Una vez realizados estos pasos, el sistema de cuotas podrá ser utilizado.

Existen cuatro tipos de límites de cuotas a saber:

  • Límite Duro por Usuario (user hard limit): El límite duro es la cantidad total de espacio en disco que un usuario puede tener. El usuario no podrá grabar más nada cuando este límite sea alcanzado;
  • Límite Suave por Usuario (user soft limits): El límite suave funciona como un área de advertencia. Cuando este límite es alcanzado el sistema avisa al usuario que su espacio en disco se está acabando. El usuario podrá hacer escrituras en disco hasta que el límite duro sea alcanzado;
  • Límite Duro por Grupo (group hard limit): El límite duro por grupo define el máximo de espacio en disco que un grupo de usuarios pueda tener. Si este límite es alcanzado, los usuarios del grupo no podrán realizar más escrituras aunque haya espacio disponible para un determinado usuario;
  • Límite Suave por Grupo (group soft limit): Tiene el mismo concepto del límite duro por grupo, pero funciona como un área de advertencia.

Además podemos configurar en la gestión de cuotas un Período de Gracia (grace period) para que un usuario o grupo que haya alcanzado el límite suave pueda eliminar algunos archivos y quedar dentro de lo establecido.

Después de que el tiempo especificado en el período de gracia sea sobrepasado y ninguna acción sea tomada, el límite suave pasa a ser límite duro, imposibilitando a los usuarios trabajar hasta que la situación sea de hecho resuelta. Este límite puede ser en minutos, horas, días, semanas e incluso meses.

Veamos ahora los comandos para gestión de cuotas:

Comando quota

El comando quota muestra las cuotas de espacio en disco configuradas para un determinado usuario o grupo y el espacio utilizado.

Sus opciones más frecuentes son:

  • -u: Muestra la cuota definida para un determinado usuario (predeterminado);
  • -g: Muestra la cuota definida para un determinado grupo;
  • -q: Muestra únicamente cuando la cuota sea excedida;
  • -v: Muestra las cuotas aunque ninguna esté definida.

Ejemplo:

$ quota –v uira
Disk quota for user uira (uid 502):Filesystem blks quota limit grace files quota limit grace/dev/hda6 18320 19000 20000 58 0 0

En este ejemplo el usuario uira está usando 18320 bloques. El límite suave son 19000 bloques y el límite duro son 20000 bloques.

Únicamente el superusuario puede ver la cuota de otros usuarios. Un usuario común puede ver su propia cuota y la cuota del grupo del que es miembro.

Comando quotaon

El comando quotaon habilita la gestión de cuotas en un dispositivo previamente configurado.

Las opciones más frecuentes son:

  • -a: Habilita la gestión de cuotas para todos los dispositivos configurados para control de cuotas en el archivo /etc/fstab;
  • -g: Habilita la gestión de cuotas para grupos en un determinado dispositivo;
  • -u: Habilita la gestión de cuotas para usuarios en un determinado dispositivo;
  • -v: Muestra todos los dispositivos donde la gestión de cuotas fue habilitada.

Ejemplo:

$ quotaon –avug

Habilita cuotas de usuarios y grupos para todos los dispositivos configurados para tal en /etc/fstab.

Comando quotaoff

Este comando deshabilita la gestión de cuotas en determinados dispositivos.

Las opciones de este comando son similares al comando quotaon.

Ejemplo:

$ quotaoff –gu /dev/hda6

Comando quotacheck

Este comando realiza un escaneo en un determinado dispositivo y construye los archivos de base de datos de cuotas. Es importante que este comando sea ejecutado con cierta regularidad para que la base de cuotas esté fiel a la realidad del sistema de archivos.

Las opciones de este comando son:

  • -a: Realiza el escaneo de todos los dispositivos configurados para la gestión de cuotas en el archivo /etc/fstab y construye la base de datos para usuarios y grupos;
  • -g grupo: Construye la base de datos de cuotas para un determinado grupo;
  • -u usuario: Construye la base de datos de cuotas para un determinado usuario;
  • -v: Muestra todos los procedimientos ejecutados por el quotacheck.

Ejemplo:

$ quotaoff –a
$ quotacheck –aug
$ quotaon

Si no deshabilitas las cuotas para un determinado dispositivo al ejecutar el comando quotacheck, la información recopilada quedará en memoria, pero los archivos con la base de datos no serán actualizados.

Comando edquota

Este comando edquota edita cuotas para usuarios y grupos. Utiliza el editor de texto vi u otro editor de texto estándar para configurar las cuotas de disco. El archivo de configuración de cuotas puede parecer un poco extraño, pero su configuración es simple.

Las opciones disponibles para el comando son:

  • -g: Si la opción –g es especificada, edquota deberá recibir como parámetro el nombre del grupo;
  • -u: Esta es la opción por defecto, para editar las cuotas del usuario;
  • -p usuarioejemplo: Esta opción se llama proto-usuario. Puedes utilizar esta opción para copiar la configuración de un usuario padrão a otro usuario;
  • -t: Esta opción es para configurar el período de gracia para los usuarios o un grupo determinado. Debe combinarse con la opción –u o –g.

Ejemplo:

$ edquota –u uira
Quotas for user: uira/dev/hda6: blocks in use: 136, limits (soft = 19000, hard = 20000)Inodes in use: 132, limits (soft = 0, hard = 0)

En este ejemplo el límite blando (soft) es de 19000 bloques y el límite duro (hard) es de 20000.

$ edquota –tu
Time units may be: days, hours, minutes, or secondsGrace period before enforcing soft limits for users:/dev/hda6: block grace period: 15 days.File grace period: 7 days

En este ejemplo el período de gracia es de 15 días para bloques y 7 días para archivos (inodos).

Comando repquota

Este comando crea un informe de las cuotas y uso del disco de los usuarios de un dispositivo o grupo determinado.

Las opciones de este comando son:

  • -a: Crea un informe de cuotas para todos los dispositivos configurados para gestión de cuotas en el archivo /etc/fstab;
  • -u: Esta es la opción por defecto, que crea un informe de uso por usuarios;
  • -g: Esta opción reporta el uso de cuotas por grupo;
  • -v: Crea un encabezado descriptivo para el informe.

Ejemplo:

$ repquota –va
*** Report for user quotas on /dev/hda6 (/home)Block limits File limitsUser used soft hard grace used soft hard graceroot 718000 0 0 418 0 0

Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.

¿Te gustó? Comparte

Uira Ribeiro

Prof. Uirá Ribeiro

Chair do Board do Linux Professional Institute

Después de años viendo profesionales perder horas en tareas simples por no conocer las herramientas correctas de Linux, decidí enseñar.
Hoy soy autor de la mayoría de los Materiales de Aprendizaje oficiales de la LPI y mentor de más de 14,000 alumnos certificados.

Conoce mi historia completa →

Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.

Certificação Linux — a plataforma líder em certificações Linux no Brasil
WhatsApp