lunes, 26 de enero de 2009

Cuotas de disco

Cuotas de disco

Algunos filesystems permiten limitar el uso del disco a los usuarios y grupos: cuotas
  • Evitan que los usuarios monopolicen el disco
  • Pueden causar problemas a los usuarios:
    • preferible instalar más disco o avisar a los usuarios que consuman demasiado
Límites de cuotas:
  • Límite débil: si la cuenta del usuario o del grupo supera el límite débil, se impondrá un período de gracia en el que el usuario podrá reducir la ocupación
  • Límite duro: se deniega cualquier intento de escribir datos despúes de este límite
  • Período de gracia: tras superar el límite débil, si el usuario no resuelve el problema borrando archivos, la cuenta se bloquea

Instalación de cuotas de disco en Debian

Si el kernel está configurado para soportar cuotas, los pasos a seguir son:
  1. Instalar el paquete quota
  2. Modificar /etc/fstab para marcar los filesystems que tendrán cuotas:
    /dev/hda9     /home     ext3     defaults,usrquota     0   2
    /dev/hda8 /tmp ext3 defaults,usrquota,grpquota 0 2
  3. Reiniciar el sistema
  4. Usar el comando edquota para editar las cuotas de usuarios y grupos

Comando edquota

Permite crear, manipular y eliminar cuotas basadas en usuarios o grupos
  • Sintaxis:
    edquota [opciones] [usuario|grupo]
  • Opciones:
    • -u usuario configura las cuotas del usuario
    • -g grupo configura las cuotas para un grupo
    • -f filesystem realiza las operaciones obre un filesystem concreto (por defecto, lo hace sobre todos los filesystems que admitan cuotas)
    • -t configura el período de gracia
    • -p user1 usuarios copia la configuración de cuotas de user1 a los usuarios indicados
  • Al ejecutar edquota se abre el editor indicado en la variable EDITOR (por defecto, vi) para modificar las cuotas:
    • se muestran los bloques de 1K en uso, así como los límites soft y hard (también para i-nodos o ficheros)
      • si un límite está a 0 no se aplica
    • esta información se guarda en los ficheros aquota.user y aquota.group en el directorio base del filesystem

Otros comandos

Existen otros comandos para la gestión de las cuotas:
  • quotacheck verifica la integridad de las bases de datos de las cuotas
    • se ejecuta en el script de inicio del sistema de cuotas
    • debe ejecutarse con las cuotas desactivadas
  • quotaon/quotaoff activa/desactiva el sistema de cuotas
  • repquota genera un informa del uso de las cuotas
    # repquota /home
    *** Report for user quotas on device /dev/hda9
    Block grace time: 7days; Inode grace time: 7days
    Block limits File limits
    User used soft hard grace used soft hard grace
    ----------------------------------------------------------------------
    root -- 34920 0 0 6 0 0
    tarabelo -- 728 0 0 31 0 0
    tomas *- 108 100 200 7days 8 0 0
  • quota permite al usuario ver el estado de sus cuotas
    • Algunas opciones:
      • -g muestra información sobre las cuotas del grupo del usuario
      • -v imprime información incluso para los filesystem sin límite en la cuota
      • -q imprime un mensaje si se ha superado la cuota
    • Ejemplo
$ quota
Disk quotas for user tomas (uid 1001):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda9 108* 100 200 6days 9 0 0
/dev/hda8 1 10 20 1 0 0
  • Para más información sobre la configuración de las cuotas ver Quota mini-HOWTO