1. Configure de nuevo el núcleo. Configure de nuevo el núcleo y añada el soporte de cuotas eligiendo la opción si en:
Quota support (CONFIG_QUOTA) [n] y
2. Compile e instale el software de cuotas.
El código fuente del software de cuotas esta disponible en:
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
3. Modifique el programa de inicio de su sistema para chequear las cuotas y arrancarlas durante el encendido.
Veamos un ejemplo:
# Check quota and then turn quota on. if [ -x /usr/sbin/quotacheck ] then echo "Checking quotas. This may take some time." /usr/sbin/quotacheck -avug echo " Done." fi
if [ -x /usr/sbin/quotaon ] then echo "Turning on quota." /usr/sbin/quotaon -avug fi **** nota del traductor **** RedHat arranca las cuotas en dos tiempos el sistema de ficheros / se chequea en primer lugar en /etc/rc.d/rc.sysinit quotacheck -v / quotaon / el resto de los sistemas de ficheros se activan con quotacheck -v -R -a / quotaon -a ****
La regla de oro es arrancar las cuotas siempre después de que los sistemas de ficheros incluidos en /etc/fstab hallan sido montados, o las cuotas pueden no funcionar. Yo recomiendo arrancar las cuotas al final del programa de inicio del sistema, o si lo prefiere, justo después de la parte del programa de inicio del sistema donde se montan los sistemas de ficheros.
4. Modificación de /etc/fstab Las particiones que no tienen todavía habilitada la cuota tienen generalmente el siguiente aspecto:
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults 1 1
Para habilitar cuotas al sistema de ficheros, añade "usrquota" al cuarto campo que contiene la palabra "defaults" (para mas detalles man fstab).
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota 1 1
Reemplaza "usrquota" por "grpquota", si necesitaras soporte de cuotas para grupos en un sistema de ficheros.
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,grpquota 1 1
Necesitas soporte para cuotas de usuario y grupo en un sistema de ficheros?
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota,grpquota 1 1
5. Crear el registro de cuotas "quota.user" y "quota.group".
Ambos ficheros de registro, quota.user y quota.group, deben pertenecer a root, con permisos de escritura y lectura para root y ningún permiso i para ningún otro.
Preséntese como root. Vaya a la base de la partición en la que desea habilitar cuotas, y cree quota.user y quota.group haciendo lo siguiente:
touch /partition/quota.user touch /partition/quota.group chmod 600 /partition/quota.user chmod 600 /partition/quota.group
6. Rearranque
Ahora rearranque el sistema para que los cambios que hemos hecho surjan efecto.
Tenga en cuenta que para las siguientes particiones en las que desee habilitar las cuotas en un futuro solo necesitara los pasos 4, 5 y 6.
Esta operación se realiza con el comando edquota (véase man edquota para mas detalles). Normalmente ejecuto quotacheck con los parámetros -avug para obtener el uso de los sistemas de ficheros lo mas actualizado posible antes de editar cuotas. Esto es solamente un habito personal, y en cualquier caso no es un paso requerido.
He aquí un ejemplo. Tengo un usuario con el id de acceso bob en mi sistema. El comando "edquota -u bob" me lleva hasta vi ( o el editor especificado en mi variable de entorno $EDITOR). para editar las cuotas del usuario bob en cada partición que tenga habilitadas las cuotas.
Quotas for user bob: /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000) inodes in use: 1454, limits (soft = 3000, hard = 4000)
"blocks in use" es el numero total de bloques (en kilobytes) consumidos por el usuario en la partición.
"inodes in use" es el numero total de ficheros que tiene el usuario en la partición.
Ahora tengo un grupo llamado games en mi sistema. "edquota -g games" me lleva de nuevo al editor vi para editar las cuotas del grupo games:
Quotas for group games: /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000) inodes in use: 1454, limits (soft = 3000, hard = 4000)
Para rápidamente fijar cuotas a, digamos 100 usuarios, en mi sistema con los mismos valores que mi usuario bob, debería editar primero la información de cuotas de bob a mano, y después ejecutar:
edquota -p bob `awk -F: '$3 >499 {print $1}' /etc/passwd`
asumiendo que estés usando csh, y que asignes el UID de tus usuarios a partir de 500.
Además en edquota, Hay otros 3 términos con los que deberemos familiarizarnos: Soft Limit, Hard Limit, y Grace Period.
Soft Limit 'soft limit' indica la máxima cantidad de uso de disco que un usuario con cuota tiene en una partición. Cuando se combina con el periodo de gracia, actúa como una línea limite, enviando avisos al usuario con cuota acerca de su próxima violación de limite de cuota al ser sobrepasada.
Hard Limit
El 'hard limit' solo funciona cuando se activa un periodo de gracia. Especifica un limite absoluto en el uso del disco, no pudiendo un usuario con cuota ir mas allá de su limite hardware.
Grace Period
Ejecutado con el comando "edquota -t", el periodo de gracia es el tiempo limite antes de hacer cumplir el limite software a un usuario con cuota. Se pueden usar segundos, minutos, horas, días, semanas, y meses como unidades de tiempo. Esto es lo que mostrara el comando "edquota -t":
Time units may be: days, hours, minutes, or seconds Grace period before enforcing soft limits for users: /dev/hda2: block grace period: 0 days, file grace period: 0 days
Cambia el apartado de 0 días por cualquier espacio de tiempo que consideres razonable. Yo personalmente he escogido 7 días (o una semana).