Quota: Limitar el disco duro a un usuario

Cualquier usuario en un sistema compartido se ha visto alguna vez en la situación de tener que borrar archivos de otro para que no ocupen parte de tu disco duro. Quien comparta el ordenador con hermanos lo comprenderá rápidamente :P

Para solucionar este problema existe un programa llamado quota para Linux que permite limitar el tamaño máximo que podrá ocupar un usuario en un sistema. Esta limitación se puede hacer de dos formas:

  • Limitando el número de KBytes que podrá utilizar este usuario en el disco duro
  • Limitar el número de archivos que tendrá

Preparando el terreno

Veamos como se utiliza. Lo primero, obviamente, es instalarlo. Para esto valdría con escribir en una consola (en el caso de Ubuntu o Debian):

sudo apt-get install quota

Ahora lo que hace falta es indicar qué particiones de tu disco duro van a ser controladas por quota. Para esto vamos a editar el archivo donde están todas las particiones declaradas con sus opciones, este archivo es el /etc/fstab. Para editarlo puedes escribir en la consola:

sudo gedit /etc/fstab

Cuando lo ejecutes se abrirá una ventana con un editor de texto (si no tienes el gedit utiliza tu editor de textos preferido) con un archivo un poco extraño. Por ejemplo, mi archivo fstab es el siguiente:

captura fstab

Formato fstab: clic para agrandar

Cada línea que empieza con almuadilla (#) es un comentario que se puede ignorar. El resto de líneas son unidades de disco o particiones que contienen la siguiente información: identificador en el sistema, punto de montaje, formato de la partición, opciones (el círculo rojo), dump y pass. Estos campos están separados por uno o más espacios (las flechas verdes).

Para que quota pueda obrar su magia necesitamos añadir la opción usrquota dentro del campo de opciones de la partición donde quieras que funcione (puede ser más de una). En este caso nos interesa la partición donde está montado todo el sistema y cambiamos sus opciones (el del círculo rojo, el 4º de la línea). Para esto simplemente añadimos una coma al final de las opciones que ya existían y escribimos usrquota. De manera que quede como en mi archivo fstab.

Para hacer las pruebas de quota crearemos un usuario de prueba en el sistema que además tenga un directorio home que pueda manipular. Esto se hace facilmente utilizando los menús de Ubuntu: Sistema -> Administración -> Usuarios y grupos.

Acceso a la opción de usuarios y gruposAcceso a usuarios y grupos: clic para agrandar

Una vez dentro del menú de Usuarios y grupos lo único que hay que hacer es hacer clic en Añadir un usuario y rellenar los datos que se necesitan. En nuestro ejemplo vamos a suponer que hemos creado el usuario pedro.

Nota: Otra manera más sencilla de crear un usuario sería escribir en la consola

sudo useradd -s /bin/bash -m pedro; sudo passwd pedro

Ahora reiniciamos para que se vuelva a montar la partición y ya está! Ya tenemos el terreno preparado para que funcione quota.

Uso

Quota tiene dos parámetros que puede limitar: el número de archivos y el número de KB que tiene un usuario. Puedes configurarlo para que funcione de forma diferente para cada usuario. Por ejemplo:

Restricciones al usuario Juan: Puede tener un máximo de 10GB
Restricciones al usuario Pedro: Puede tener un máximo de 512KB y 16 archivos.

Cada usuario tiene una configuración diferente y ésta se aplica individualmente (aunque existen maneras de automatizarlo).

Primero comprobamos que el usuario pedro no tenga ninguna cuota habilitada ya. Para ver las cuotas existentes en un usuario basta con escribir en la consola:

sudo quota -u pedro

Este comando nos devolverá una frase del tipo:

Cuotas de disco para user pedro (uid 1001): ninguno

Esto se debe a que aún no hemos aplicado ninguna cuota. Vamos a aplicarle al usuario pedro una restricción de tamaño total de archivos, por ejemplo 10GB. Para ésto, utilizaremos un programa que viene con quota que se llama edquota. Forma parte del paquete y es el programa específico para modificar las cuotas a los usuarios.

Para abrir el editor de cuotas escribimos en la consola:

sudo edquota pedro

Este comando abrirá nuestro editor de texto por defecto y nos mostrará una pantalla parecida a la del fstab donde cada espacio (o grupo de espacios) separa unas opciones de otras.

Formato edquotaFormato edquota: clic para agrandar

En este caso he pintado las flechas de colores de forma que cada opción tiene una flecha del mismo color que su valor. En este ejemplo tendríamos las opciones configuradas de esta manera:

  • Sistema de archivos: /dev/sda1
  • bloques: 44
  • límiteflexible: 0
  • tope: 0
  • inodes: 15
  • límiteflexible: 0
  • tope: 0

Sistema de archivos indica en qué partición de tu disco duro se encuentra el usuario pedro. Esta opción no hay que tocarla (si nos fijamos es la misma partición a la que le dimos la opción usrquota antes).

Bloques indica el número actual de bloques (un bloque es igual a 1 KB). Por lo tanto, la ocupación de pedro en el sistema actualmente es de 44KB.

Límiteflexible es un parámetro que indica el número máximo de KB que puede ocupar pedro en el sistema sin que se le borren. Es una barrera que se puede pasar pero cuando pasa un tiempo si se sigue pasando esa barrera de KB se borran los archivos. En un  otro post enseñaré a usarlo.

Tope es lo que buscábamos. En esta opción está se indica el número de KB máximo que podrá ocupar pedro en el sistema. Pedro no podrá pasar de ese espacio.

Inodes es el número de archivos actual de pedro. En este caso tiene 15 archivos.

Límiteflexible indica otra vez lo mismo pero para los archivos. El máximo de archivos que podrá tener pedro sin que se le borren en un tiempo.

Tope indica lo mismo que el tope de los bloques pero para los archivos. El número máximo de archivos que tendrá pedro.

Con estas opciones puedes tener un completo control sobre el espacio que pedro ocupará en tu sistema. Ahora si que vamos a aplicarle a pedro la restricción de 10GB como máximo. Primero calculamos cuántos KB son 10GB:

10GB = 10*1024*1024 = 10485760 KB

Y ahora editamos las cuotas de pedro con el comando de antes:

sudo edquota pedro

Y cambiamos el primer tope (el que está relacionado con los bloques) a 10485760. Tiene que quedar algo así:

Archivo de cuotas modificadoArchivo de edquota modificado para 10GB: clic para agrandar

Para cambiar el límite de archivos en el disco solo tendrías que cambiar el valor del segundo tope al máximo que quieras. Si dejas algún valor a 0 significa que no se aplicará ninguna restricción.

Por último comentar que puedes combinar las dos restricciones o aplicarlas individualmente. Y el límite flexible lo explicaré otro día :)

Conclusiones

Hemos conseguido instalando un programa ligerísimo llevar un control total sobre el uso de disco de los usuarios de tu sistema.

Un saludo a todos, espero que os sea útil.

Fuente:Statuesque.es

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: