Cuotas de disco en Ubuntu

De todos es conocido el uso de cuotas (quota) en Linux, para limitar el uso que determinados usuarios y/o grupos de usuarios hacen sobre las particiones de disco. Este tutorial explicará de manera sencilla como instalar y configurar un sistema de cuota en disco.

Lo primero es entrar como root (sudo -s) e instalar el paquete:

apt-get install quota

A continuación editamos el fichero de particiones /etc/fstab y editamos las opciones de la partición (la cuarta columna), y añadimos (separados por comas) las palabras usrquota (si queremos restringir por usuario) y grpquota (o por grupo). En nuestro caso hemos modificado la partición de /home:

/dev/sda1 / ext3 errors=remount-ro 0 1
/dev/sda2 /home ext3 defaults,usrquota,grpquota 0 2
/dev/sda3 none swap defaults 0 0
proc /proc proc defaults 0 0

Una vez hecho esto hay que reiniciar la máquina (con reboot).

Una vez reiniciada la máquina se nos habrán creado los ficheros aquota.user y aquota.group en la raíz de la partición escogida antes (en nuestro caso /home).

Para restringir la cuota a un usuario usaremos el comando edquota -u username donde username será el nombre del usuario a restringir (pueden restringirse varios usuarios a la vez, si separamos los nombres de usuarios por espacios). Esto hará que se lance un editor de texto con un fichero donde se describe el uso actual y la restricción actual de bloques de disco e inodos (enlaces a ficheros dentro del sistema de ficheros) para el usuario. Se desciben por tanto los siguientes valores (cada valor corresponde a una columna en el fichero):

  1. Filesystem: Partición restringida.
  2. blocks: Número de bloques (por un bloque se entiende 1Kb de datos) actualmente usados por el usuario.
  3. soft: Restricción suave de bloques, es decir valor máximo hasta que se dejará rebasar por un tiempo hasta que pasado un tiempo se limite al valor duro. Si vale 0 este límite no se aplicará.
  4. hard: Restricción dura de bloques a la que limitaremos al usuario, pero que dejaremos rebasar temporalmente hasta el límite suave. Si vale 0 este límite no se aplicará.
  5. inodes: Número de inodos actualmente en uso.
  6. soft: Restricción suave de inodos, es decir valor máximo hasta que se dejará rebasar por un tiempo hasta que pasado un tiempo se limite al valor duro. Si vale 0 este límite no se aplicará.
  7. hard: Restricción dura de inodos a la que limitaremos al usuario, pero que dejaremos rebasar temporalmente hasta el límite suave. Si vale 0 este límite no se aplicará.

Por ejemplo para limitar a 1Gb (1Gb = 1Kb x 1Kb = 1024 x 1024 = 1048576) una cuenta estableceremos el límite hard de bloques a 1048576:

Disk quotas for user compartido (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda2 24 0 1048576 6 0 0

Una vez que salvemos el fichero de texto, este se aplicará automáticamente al usuario.

Para restringir por grupos es igual salvo que el comando a invocar será edquota -g groupname.

Para que un usuario restringido pueda consultar la cuota usada y la disponible puede usar el comando quota:

Cuotas de disco para user compartido (uid 1001):
Archivo del sistema bloques quota límite graciaarchivos quota límite gracia
/dev/sda2 24 0 1048576 6 0 0

Con esto finaliza el artículo, si tenéis dudas preguntad, que intentaré contestaros.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.