Hola:
Os dejo mi pequeña contribución para todos los que estamos aprendiendo.
Veamos en 8 sencillos pasos como activar el sistema de cuotas de disco.
1. Comprobar si nuestro núcleo tiene activado el soporte para quota
Raro será que no lo tenga, pero por si acaso, no nos cuesta nada comprobarlo. Para ello sólo tenemos que comprobar que exista una línea con el siguiente texto:
CONFIG_QUOTA=y
en nuestro archivo de configuración del kernel. Dicho archivo reside en /boot y se llama config-x.y.z-w, siendo x.y.z-w la versión de nuestro núcleo, en mi caso:
$ cd /boot
$ cat config-2.6.12-12mdksmp |grep CONFIG_QUOTA
CONFIG_QUOTA=y
Perfecto, podemos pasar al siguiente punto.
2. Instalar los paquetes necesarios
En mi caso tan sólo debo instalar el paquete quota:
$ sudo urpmi quota
instalando quota-3.13-1mdk.i586.rpm desde /var/cache/urpmi/rpms
Preparando... #############################################
1/1: quota #############################################
3. Modificar las opciones de montaje de sistema de ficheros
Debemos añadir las opciones usrquota y/o grpquota en las opciones de montaje del sistema de ficheros en el que nos interese activar las cuotas, habitualmente es en la partición que acogerá a /home.
Añadiremos la opción usrquota si queremos controlar el espacio en disco de los usuarios y grpquota si queremos limitar el volumen de información para grupos.
Estas opciones se incluyen en el fichero /etc/fstab, en mi caso, quiero activar las cuotas para usuarios y grupos en /home, por consiguiente:
$ cat /etc/fstab |grep home
/dev/sda6 /home ext3 0 0
Edito el fstab y escribo lo siguiente:
/dev/sda6 /home ext3 usrquota,grpquota 0 0
Grabamos y pasamos al siguiente punto.
4. Crear las bases de datos de quota.
Los datos del espacio asignado a cada usuario y a cada grupo se guardan en los archivos quota.user y quota.group, respectivamente, situados en el raíz del sistema de ficheros. Debemos crear estos archivos:
$ sudo touch /home/quota.user /home/quota.group
La línea anterior nos ha creado los archivos con tamaño 0 bytes y permisos rw-r--r-- (644). Esto es correcto si queremos que los usuarios puedan consultar su cuota asignada, si queremos que tan sólo el superusuario pueda consultar las cuotas deberemos cambiar los permisos a rw------- (600):
$ sudo chmod 600 /home/quota.user /home/quota.group
5. Reiniciar el sistema
Para que /home se monte con las opciones de quota.
6. Rastrear el sistema de ficheros
Ejecutar quotacheck para hacer las cuentas del espacio que usa cada usuario/grupo:
$ sudo quotacheck -avugm
quotacheck: WARNING - Quotafile /home/quota.user was probably truncated. Can't save quota settings...
quotacheck: WARNING - Quotafile /home/quota.group was probably truncated. Can't save quota settings...
quotacheck: Scanning /dev/sda6 [/home] done
quotacheck: Checked 60 directories and 135 files
Nos da un error porque los ficheros /home/quota.user y /home/quota.group contenían datos no válidos, porque los hemos generado vacíos. Podemos ignorar el error, en el futuro ya no sucederá pues el contenido de los archivos será correctos.
7. Asignar espacio en disco a cada usuario/grupo
El espacio se asigna usando el comando edquota, para asignar espacio a un usuario:
$ sudo edquota -u amanecer
Disk quotas for user amanecer (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sda6 448 0 0 187 0 0
En blocks aparecen los bloques actualmente usados en el sistema de ficheros, en soft podemos cambiar el 0 por el número de bloques a partir del cual el sistema nos dará un aviso, en hard podemos cambiar el 0 por el número máximo de bloques que el usuario podrá usar, cuando se alcance este límite ya no podrá escribir nada mas en el sistema de ficheros. En inodes es lo mismo, pero para nodos. Si dejamos los valores nulos, tal y como me aparece en el ejemplo, no se aplica cuota.
Para asignar espacio a un grupo:
$ sudo edquota -g amanecer
Disk quotas for group amanecer (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sda6 448 0 0 187 0 0
8. Activar, por fin, el sistema de cuotas
Para activar el sistema de cuotas se usa quotaon:
$ sudo quotaon -a
* Notas:
- Hasta aquí tendríamos activadas las cuotas para la sesión actual, si queremos control de cuotas permanente debemos añadir quotacheck y quotaon a los scrips de inicio; por ejemplo en /etc/rc.d/rc.sysinit:
$ sudo kwrite /etc/rc.d/rc.sysinit
(Añadir)
# Recalculando las cuotas...
/sbin/quotacheck -avugm
# Activando las cuotas...
/sbin/quotaon -avug
(Grabar)
- Al superusuario no se le aplican cuotas.
- Si se le asigna espacio insuficiente a un usuario no podrá iniciar la sesión gráfica.
- Mucho ojo si habeis montado un único sistema de ficheros en el que reside absolutamente todo y activais las cuotas porque hay archivos propiedad del usuario que inicia la sesión fuera de /home y también cuentan.
- Para desactivar momentáneamente las cuotas usar quotaoff.
Suerte.