Quota COMO <author>Albert M.C. Tam (<tt/bertie@scn.org/), <newline> Traducción: Juan José López (<tt/laveneno@hotmail.com/) <date>8 Aug 1997 (trad: 10 Ago 1998) <abstract> Este documento describe cómo habilitar las cuotas de sistema de ficheros en una máquina Linux, asignando cuotas para usuarios y grupos, al igual que cómo usar los comandos relacionados. Está destinado a usuarios del kernel 2.x (ha sido probado recientemente en RedHat 4.1 corriendo kernel 2.0.27). Los usuarios de kernels más antiguos necesitarán actualizarse a una versión más moderna para poder disfrutar de las ventajas de las cuotas. Siéntase libre de enviar cualquier comentario a <htmlurl url="mailto:bertie@scn.org" name="bertie@scn.org"> si encuentra algún error, o si hay alguna información que no aparece. Lo apreciaré mucho. </abstract> <toc> <sect>Copyright <p> Este documento ha sido escrito por Albert M.C. Tam (bertie@scn.org). Se permite el uso, copia y distribucion de este documento para propósitos no comerciales, siempre que el nombre de autor / editor y esta nota aparezcan en todas las copias y/o documentos de soporte; eso si este documento no es modificado. Este documento se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, ni explícita ni implícita. Aunque se ha tenido el mayor cuidado para asegurar la exactitud de la información documentada aquí, el autor / editor / mantenedor NO ASUME LA RESPONSABILIDAD por los errores, o por destrozos resultado del uso de la presente documentación. <sect>¿Qué es <tt/quota/? <p> <tt/Quota/ le permite especificar límites en dos aspectos del almacenamiento en disco: el número de inodos que un usuario o grupo puede poseer; y el número de bloques de disco que pueden ser reservados por un usuario o grupo. La idea subyaciente en las cuotas es que los usuarios se vean forzados a tener en cuenta sus límites de consumo de espacio en disco, evitando la habilidad de algunos de consumir espacio ilimitado en un sistema. La cuota se maneja con un planteamiento de un usuario / en un sistema de ficheros. Si hay más de un sistema de ficheros en el cual un usuario tiene posibilidades de crear ficheros, entonces debe habilitarse la cuota para ambos sistemas de ficheros por separado. <sect>El estado actual de las cuotas en Linux <p> El soporte para cuotas de disco han sido integradas en el kernel desde la versión 1.3.8x. Actualmente es parte de la versión 2.0 del kernel de Linux. Si su sistema no acepta las cuotas, realmente le recomiendo una actualización. Actualmente las cuotas de disco solo pueden usarse con el sistema de ficheros <bf/ext2/. <sect>Requerimientos para el uso de cuotas en Linux <p> <bf/Kernel:/ La versión 2.0 del kernel está disponible en <htmlurl url="http://sunsite.unc.edu/pub/Linux/kernel/v2.0" name="http://sunsite.unc.edu/pub/Linux/kernel/v2.0"> <bf/Quota/ Dependiendo de la distribución de Linux de que disponga, puede que ya disponga del software de <tt/quota/ instalado en su sistema. Si no lo tiene, puede obtenerlo de <htmlurl url="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz" name="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz"> <sect>Instalación de las cuotas en Linux <p> <sect1>La configuración <p> <descrip> <tag/Reconfigurar el kernel/ Reconfigure su kernel y añada el soporte para las cuotas seleccionando `y' en: <tscreen><verb> Quota support (CONFIG_QUOTA) [n] y </verb></tscreen> <tag/Compilado e instalación del software de <tt>quota</tt>/ El software de <tt>quota</tt> está disponible en <htmlurl url="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz" name="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz"> <tag/Modificar el inicio del sistema/ modificar los ficheros de comandos de inicio del sistema para activar las cuotas en el arranque del sistema. Aquí hay un ejemplo: <tscreen><verb> # 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 </verb></tscreen> La regla de oro es que <bf/siempre/ se active <tt/quota/ DESPUÉS de montar los sistemas de ficheros de <tt>/etc/fstab</tt>, de cualquier otro modo <tt/quota/ no funcionaría. Recomiendo activar las cuotas al final de su fichero de comandos de inicio, o si lo prefiere, justo después de la parte encargada del montado de los sistemas de ficheros. <tag/Actualizar la información del sistema/ Esto implica modificar el fichero <tt>/etc/fstab</tt>. Las particiones que no tienen activada la cuota aparecen más o menos así: <tscreen><verb> /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults 1 1 </verb></tscreen> Para activar el soporte para las cuotas de usuario en un sistema de ficheros, añada ``<tt/usrquota/'' al cuarto campo, el que contiene la palabra ``<tt/defaults/'' (vea la página de manual de <tt/fstab/ para más detalles). <tscreen><verb> /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota 1 1 </verb></tscreen> Cambie ``<tt/usrquota/'' por ``<tt/grpquota/'' si necesita soporte para cuotas de grupos en un sistema de ficheros. <tscreen><verb> /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,grpquota 1 1 </verb></tscreen> Si necesita ambos tipos de cuotas, <tscreen><verb> /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults,usrquota,grpquota 1 1 </verb></tscreen> <tag/Crear los registros ``<tt>quota.user</tt>'' y ``<tt>quota.group</tt>'' / Estos dos ficheros de registro de cuotas, quota.user y quota.group, deben pertenecer a root, y deben tener permisos de lectura-escritura para root y para nadie más. Ingrese como root. Vaya a la raíz de la partición en la cual desea activar las cuotas, entonces cree quota.user y quota.group haciendo: <tscreen><verb> touch /partition/quota.user touch /partition/quota.group chmod 600 /partition/quota.user chmod 600 /partition/quota.group </verb></tscreen> <tag/Rearrancar/ Rearranque el sistema para que los cambios que ha realizado tengan efecto. Tenga en cuenta que para las siguientes particiones en las que quiera habilitar la cuota solo necesitará los pasos cuarto, quinto y sexto. </descrip> <sect1>Asignación de cuotas a los Usuarios y Grupos <p> Esta operación se realiza mediante el comando <tt/edquota/ (vea la página de manual de <tt/edquota/ para más detalles). En este punto yo normalmente ejecutaría ``<tt/quotacheck/'' con los argumentos ``<tt/-avug/'' para obtener el uso actual de los sistemas de ficheros antes de editar las cuotas. Esto es solo un hábito personal, y no es un paso indispensable. <sect2>Asignando las cuotas de un usuario en particular <p> Aquí tiene un ejemplo. Tengo un usuario con el nombre <em/bob/ en mi sistema. El comando ``<tt/edquota -u bob/'' hace que entre dentro de <tt/vi/ (o el editor especificado en mi variable de entorno EDITOR) para editar la cuota del usuario <em/bob/ en cada una de las particiones en las que la cuota esté habilitada: <tscreen><verb> Quotas for user bob: /dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500) inodes in use: 356, limits (soft = 1000, hard = 1500) </verb></tscreen> ``<tt>blocks in use</tt>" es el número total de bloques (en KBytes) que el usuario ha consumido en la partición. ``<tt>inodes in use</tt>" es el número total de ficheros que el usuario tiene en la partición. <sect2>Asignando cuotas para un grupo en particular <p> Tengo en mi sistema un grupo llamado <em/games/. ``<tt/edquota -g games/'' entra en el editor <tt/vi/ de nuevo y me permite editar la cuota del grupo <em/games/. <tscreen><verb> Quotas for group games: /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000) inodes in use: 1454, limits (soft = 3000, hard = 4000) </verb></tscreen> <sect2>Asignando cuotas a un montón de usuarios con los mismos valores <p> Para asignar cuotas rápidamente, por ejemplo a 100 usuarios, en mi sistema con los mismos valores que para <em/bob/, primero debo editar las cuotas de <em/bob/ manualmente, y entonces ejecutar: <tscreen><verb> edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd` </verb></tscreen> asumiendo que está usando <tt/csh/, y que asigna los UIDs de los usuarios a partir del 500. <sect2>Límites avanzados <p> En adición a <tt/edquota/, hay 3 valores con los que debe familiarizarse: el ``Límite Blando'' (<em/Soft Limit/), el ``Límite Duro'' (<em/Hard Limit/) y el ``Periodo de Gracia'' (<em/Grace Period/). <descrip> <tag/``Límite Blando''/ 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 de división a partir de la cual un usuario obtendrá mensajes de advertencia por su violación. <tag/``Límite Duro''/ actúa <bf/solo/ cuando el ``Periodo de Gracia'' está activado. Especifica el límite absoluto de uso de disco, a partir del cual un usuario no podrá pasar. <tag/``Periodo de Gracia''/ ejecutado con el comando ``<tt/edquota -t/'', el ``Periodo de Gracia'' es un límite temporal antes de que el ``límite blando'' se tenga en cuenta para un sistema de ficheros con la cuota activada. Las unidades de tiempo pueden ser sec (segundos), min (minutos), hour (horas), day (días), week (semanas), y month (meses). Esto es lo que verá con el comando ``<tt/edquota -t/'': <tscreen><verb> 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 </verb></tscreen> Cambie la parte de ``<tt/0 days/'' por el tiempo que estime razonable. Yo personalmente escogería 7 días (o 1 semana). </descrip> <sect>Otros comandos relacionados <p> <descrip> <tag/Quotacheck/ se usa para obtener el uso de disco para un sistema de ficheros, y modifica el registro de cuotas en el fichero ``<tt/quota.user/'' al estado actual. Recomiendo ejecutar quotacheck en el arranque del sistema, o a través de cron periódicamente (¿por ejemplo cada semana?). <tag/Repquota/ produce información de resumen de las cuotas en un sistema de ficheros. Este es un ejemplo del resultado: <tscreen><verb> # repquota -a Block limits File limits User used soft hard grace used soft hard grace root -- 175419 0 0 14679 0 0 bin -- 18000 0 0 735 0 0 uucp -- 729 0 0 23 0 0 man -- 57 0 0 10 0 0 user1 -- 13046 15360 19200 806 1500 2250 user2 -- 2838 5120 6400 377 1000 1500 </verb></tscreen> <tag/Quotaon y Quotaoff/ quotaon se usa para activar la contabilización de la cuota; y quotaoff para desactivarla. Actualmente los dos ficheros son similares. Son ejecutados en el arranque y apagado del sistema. </descrip> </article>