5.3. Cuotas¶
La cuota de disco permite establecer un límite máximo en el número de ficheros creados o el espacio ocupado por un usuario (cuota de usuario) o por el conjunto de usuarios que pertenecen a un grupo (cuota de grupo).
5.3.1. Activación¶
Para hacer uso de ellas es necesario:
Instalar el paquete quota:
# apt install quota
Cargar el módulo de cuotas:
# echo "quota_v2" > /etc/modules # modprobe quota_v2
La primera línea posibilita que el módulo se cargue durante cada arranque, mientras que el segundo que se cargue en la sesión actual.
Añadir la opción usrquota (y grpquota si se quieren las cuotas de grupo) en la línea de
/etc/fstab
correspondiente a cada fichero en el que se quiera habilitar las cuotas:Nota
En sistemas ext4 que es lo habitual en linux.
/dev/sda7 /home ext4 defaults,usrquota 0 1
En este caso se ha habilitado sólo para el sistema de ficheros encargado de albergar los directorios personales de usuario (
/home
). Para que tome efecto, inmediato este cambio habrá que volver a montar la partición:# mount -o remount /home
Crear el fichero que almacenará las cuotas y llevará la cuenta de cuánto ha ocupado cada usuario:
# quotacheck -cvagu
Activar la cuota del sistema (también se puede reiniciar el sistema):
# quotaon /home
o bien, haciendo uso del servicio de debian:
# invoke-rc.d quota restart
Llegados a este punto ya estarán habilitadas las cuotas, lo cual podrá comprobarse del siguiente modo:
# quotaon -p /home
group quota on /home (/dev/sda7) is off
user quota on /home (/dev/sda7) is on
# repquota -v /home
Report for user quotas on device /dev/mapper/VGserver-home
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 13 0 0 0 2 0 0 0
usuario -- 19 0 0 0 11 0 0 0
Es conveniente que periódicamente, por ejemplo una vez a la semana, se comprueben las cuotas de usuario por lo que sería conveniente añadir a cron la siguiente orden:
quotacheck -vagu
Advertencia
En esta orden para cron no añada la opción -c
,
puesto que recrearía el fichero y nos haría perder todas las cuotas ya
establecidas para los usuarios.
5.3.2. Definición¶
Habilitadas las cuotas toca establecerlas para los usuarios. Fundamentalmente hay dos métodos:
- setquota
Sirve para modificar directamente la cuota en la línea de comandos:
# setquota -u nombre_usuario 1024 1024 0 0 /home
Los dos primeros números están expresados en bloques de 1K y significan el límite de ocupación, mientras que los dos segundos expresan el número áximo de ficheros que se le permite crear al usuario «nombre_usuario» en el sistema de fichero
/home
. El hecho de que existan dos límites se debe a que el primero es un límite blando, que puede sobrepasarse durante un tiempo de gracia, mientras que el segundo es un límite duro, que no puede sobrepasarse en ningún caso.En nuestro caso hemos hecho coincidir ambos, pero si hubieras querido hacer uso de ambos límites y establecer un tiempo de gracia (en segundos), puede usarse a continuación la orden con la opción
-t
para fijar un límite común a todos los usuarios (o grupos), o-T
para establecerlo individualmente para cada usuario (o grupo):# setquota -t -u $((24*60*60)) $((24*60*60)) /home
o bien:
# setquota -T -u nombre_usuario $((24*60*60)) $((24*60*60)) /home
En ambos casos, el primer tiempo (1h) es el tiempo de gracia para el límite de almacenamiento, y sel segundo para el número límite de ficheros.
Nota
Todos estos límites se fijan para la cuota de usuario. Si quieren establecerse cuotas de grupo, basta con utilizar la opción
-g
em vez de-u
.Nota
Si se usa la opción
-a
en sustitución del sistema de ficheros las cuotas (o los tiempos de gracia) se modificarán para todos los sistemas de ficheros.
- edquota
El otro modo de establecer las cuotas de usuario es mediante un método interactivo que permite editarlas como si de un fichero se tratara:
# edquota -u usuario
Que nos presentará con el editor predeterminado lo siguiente:
Disk quotas for user usuario (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/sda7 7 0 2048 4 0 0
Los significados de los números son exactamente los mismos que para setquota, aunque en este caso se nos informa también de cuál es la ocupación actual (en el ejemplo, 7K de ocupación y 4 ficheros creados).
Si se quieren modificar los tiempos de gracia puede usarse:
# edquota -tu
o:
# edquota -Tu usuario
de forma análoga a como se hacía con setquota.
Además de este sabor interactivo, edquota permite copiar las cuotas de un usuario en uno u otros usuarios con la opción
-p
:# edquota -p usuario otro_usuario otro_usuario_mas
Un usuario particular siempre podrá conocer su estado de la cuota con la siguiente consulta:
$ quota
El administrador, por su parte, podrá conocer también las ajenas con sólo añadir el nombre de usuario a la orden:
# quota usuario_limitado
Aunque si quiere un informe de todas las cuotas, entonces es más recomendable:
# repquota -v /home