Cuotas de disco Contribuido por &a.mpp;. 26 Febrero 1996 Las cuotas constituyen una prestación del sistema operativo que le permite limitar la cantidad de espacio en disco y/o el número de archivos de que un usuario puede disponer en un determinado sistema de archivos. Habitualmente se utiliza en sistemas multiusuario en los que resulta deseable limitar la cantidad de recursos de que puede disponer cada usuario o grupo de usuarios. De este modo se impide que un usuario agote todo el espacio disponible en un disco. Configurando su sistema para habilitar las cuotas de disco Antes de intentar usar las cuotas de disco es necesario asegurarse de que se encuentran habilitadas en el núcleo del sistema operativo. Esto se consigue añadiendo la siguiente línea al archivo de configuración del núcleo: options QUOTA El núcleo que se incluye de serie (GENERIC) no tiene esta función activada por defecto, por lo que tendrá que configurar, crear e instalar un núcleo a medida para utilizar las cuotas de disco. Puede acudir a la sección Configurando el núcleo de FreeBSD, donde encontrará más información acerca de la configuración del núcleo. A continuación, necesitará habilitar las cuotas de disco en /etc/sysconfig. Esto se hace cambiando la línea: quotas=NO por: quotas=YES Si está utilizando FreeBSD 2.2.2 o posterior, el archivo de configuración será /etc/rc.conf y el nombre de la variable habrá cambiado a: check_quotas=YES Finalmente, necesitará editar /etc/fstab para habilitar las cuotas de disco de forma individualizada para cada sistema de archivos. Es aquí donde puede habilitar cuotas para usuarios, grupos o ambos y para todos sus sistemas de archivos. Para habilitar las cuotas de disco para un determinado usuario en un sistema de archivos, añada la opción userquota en el archivo /etc/fstab, en el campo de opciones del registro correspondiente al sistema de archivos para el cual quiere habilitar las cuotas. Por ejemplo: /dev/da1s2g /home ufs rw,userquota 1 2 Análogamente, para habilitar las cuotas para grupos emplee la opción groupquota en lugar de userquota. Para habilitar ambas, cuotas de usuario y de grupo, cambie el registro del siguiente modo: /dev/da1s2g /home ufs rw,userquota,groupquota 1 2 Por defecto, los archivos relacionados con las cuotas se almacenan en el directorio raíz del sistema de archivos con los nombres quota.user y quota.group, para las cuotas de usuarios y de grupos, respectivamente. Consulte man fstab para más información. Aunque esa página man afirma que se puede especificar un emplazamiento alternativo para los archivos relacionados con las cuotas, esto no es recomendable ya que las diversas utilidades de las cuotas no parecen adaptarse convenientemente a este cambio. En este momento debería reiniciar su sistema con el nuevo núcleo. /etc/rc ejecutará automáticamente los comandos apropiados para crear los archivos iniciales de las cuotas para todas las cuotas que haya activado en /etc/fstab, por lo que no hace falta crear manualmente ningún archivo de cuotas de logitud cero. Durante el funcionamiento normal del sistema, no debería ser necesario ejecutar manualmente los comandos quotacheck, quotaon, o quotaoff. Sin embargo, puede interesarle leer sus páginas man para familiarizarse con su funcionamiento. Fijando los límites de las cuotas Una vez haya configurado su sistema para habilitar las cuotas, compruebe que realmente han sido habilitadas. Una forma de hacerlo fácilmente es ejecutar &prompt.root; quota -v Debería aparecer una línea describiendo la utilización de los discos y los límites actuales de cuotas para cada sistema de archivos en el que estén activadas las cuotas. Ya está listo para comenzar a asignar límites de cuota con el mandato edquota. Tiene varias opciones acerca de cómo aplicar límites a la cantidad de espacio en disco de que un usuario o grupo puede disponer y la cantidad de archivos que pueden crear. Puede limitar la cantidad de disco utilizada en función del espacio físico usado (cuotas de bloque), en función de los archivos (cuotas de inode) o en función de una combinación de ambos. Cada uno de estos límites se divide en dos categorías: límites flexibles y rígidos. Los límites rígidos no pueden ser sobrepasados. Cuando un usuario alcanza su límite rígido, ya no puede disponer de más espacio en el sistema de archivos en cuestión. Por ejemplo, si el usuario tiene un límite rígido de 500 bloques en un determinado sistema de archivos y ya está utilizando 490 bloques, el usuario sólo puede asignar 10 bloques adicionales. Cualquier intento de asignar 11 bloques fracasará. Por otra parte, los límites flexibles pueden ser sobrepasados por un periodo de tiempo limitado. Este periodo de tiempo se conoce como el periodo de gracia, que dura una semana por defecto. Si un usuario permanece por encima de su límite flexible más allá del periodo de gracia, el límite flexible se convertirá en un límite rígido y no se permitirá realizar nuevas asignaciones. Cuando el usuario se vuelva a situar por debajo del límite flexible, el periodo de gracia se reiniciará. A continuación se muestra un ejemplo de lo que podrá ver cuando ejecute el comando edquota. Cuando se invoca el comando edquota, se inicia el editor espeficado en la variable de entorno EDITOR, o el editor vi en caso de que la variable EDITOR no se encuentre definida, permitiéndole editar los límites de las cuotas de disco. &prompt.root; edquota -u test Quotas for user test: /usr: blocks in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: blocks in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60) Normalmente verá dos líneas por cada sistema de archivos que tenga activadas las cuotas de disco. Una línea para los límites de bloques y otra para los límites de inodes. Para modificar los límites de las cuotas, simplemente cambie el valor que quiere actualizar. Por ejemplo, para elevar el límite de bloques de este usuario de un límite flexible de 50 y un límite rígido de 75 a un límite flexible de 500 y a un límite rígido de 600, cambie: /usr: blocks in use: 65, limits (soft = 50, hard = 75) por: /usr: blocks in use: 65, limits (soft = 500, hard = 600) Los nuevos límites estarán vigentes cuando salga del editor. En ocasiones resulta deseable imponer límites en las cuotas de disco a un intervalo de UIDs (número de identificación de usuario). Esto se puede hacer empleando la opción del comando edquota. En primer lugar, asigne el límite deseado al usuario y luego ejecute edquota -p protouser UID_inicial-UID_final. Por ejemplo, si el usuario test está sujeto a límites en la cuota de disco, el siguiente comando puede ser empleado para duplicar esos límites para los UIDs comprendidos entre 10000 y 19999: &prompt.root; edquota -p test 10000-19999 La capacidad de especificar intervalos de UIDs se añadió al sistema después de que la versión 2.1 fuese distribuida. Si necesita esta función en un sistema 2.1, deberá conseguir una copia más reciente de edquota. Consulte man edquota, donde encontrará información más detallada. Comprobando los límites en las cuotas y la utilización de los discos Puede utilizar el comando quota, o bien el comando repquota para comprobar los límites en las cuotas y la utilización de los discos. El comando quota puede ser empleado para comprobar cuotas individuales y de grupo, así como la utilización de los discos. Sólo el administrador del sistema puede examinar las cuotas y la utilización de los discos por otros usuarios o por grupos de los que no es miembro. El comando repquota puede ser empleado para obtener un resumen de todas las cuotas y la utilización de los discos para sistemas de archivos que tengan las cuotas habilitadas. A continuación se muestra un ejemplo de la salida del comando quota -v para un usuario que está sujeto a límites en la cuota de disco en dos sistemas de archivos. Disk quotas for user test (uid 1002): Filesystem blocks quota limit grace files quota limit grace /usr 65* 50 75 5days 7 50 60 /usr/var 0 50 75 0 50 60 En el ejemplo anterior, en el sistema de archivos /usr el usuario ya ha sobrepasado en 15 bloques su límite flexible (fijado en 50 bloques) y aún dispone de 5 días del periodo de gracia. Observe la presencia de un asterisco *, lo cual indica que el usuario ha sobrepasado su límite en la cuota de disco. Normalmente, aquellos sistemas de archivos en los que el usuario no esté utilizando espacio no figurarán en la salida del comando quota, aunque el usuario tenga asignado un límite en la cuota de disco para esos sistemas de archivos. La opción mostrará esos sistemas de archivos, como ha sucedido con /usr/var en el ejemplo anterior. * Cuotas a través de NFS Esta sección se encuentra en desarrollo.