Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2007 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.
Debe iniciarse el sistema en nivel de corrida 1 (mono usuario), ya que se requiere no haya procesos activos utilizando contenido de la partición a la cual se le aplicará la cuota de disco.
Obviamente, durante la instalación, debió asignarse una partición dedicada para, por mencionar un ejemplo, los directorios /var y /home.
Con la finalidad de añadir el soporte para cuotas en las particiones anteriormente mencionadas, se debe añadir en el fichero /etc/fstab los parámetros usrquota y grpquota a las líneas que definen la configuración de las particiones /var y /home:
LABEL=/var /var ext3 defaults,usrquota,grpquota 1 2 LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2 |
Debe remontar las particiones para que surtan efecto los cambios:
mount -o remount /var |
Se deben crear los ficheros aquota.user, aquota.group, quota.user y quota.group, los cuales se utilizarán en adelante para almacenar la información y estado de las cuotas en cada partición.
cd /var |
Ejecutar:
quotacheck -avug |
La primera vez que se ejecuta el mandato anterior es normal marque advertencias refiriéndose a posibles ficheros truncados que en realidad no eran otra cosa sino ficheros de texto simple vacíos a los cuales se les acaba de convertir en formato binario. Si se ejecuta de nuevo quotacheck - avug, no deberá mostrar advertencia alguna.
Para activar las cuotas de disco recién configuradas, solo bastará ejecutar:
quotaon /var quotaon /home |
Vaya al nivel de corrida 3 a fin de aplicar cuota de disco a algunos usuarios.
init 3 |
Es importante conocer que significa cada columna mostrada por edquota.
|
Blocks: Bloques. Corresponde a la cantidad de bloques de 1 Kb que está utilizando el usuario. Inodes: Inodos. Corresponde al número de ficheros que está utilizando el usuario. Un inodo (también conocido como Index Node) es un apuntador hacia sectores específicos de disco duro en los cuales se encuentra la información de un fichero. Contiene además la información acerca de permisos de acceso así como los usuarios y grupos a los cuales pertenece el fichero. Soft: Limite de gracia. Limite de bloques de 1 KB que el usuario puede utilizar y que puede rebasar hasta que sea excedido el periodo de gracia (de modo predeterminado son 7 días). Hard: Limite absoluto. Limite que no puede ser rebasado por el usuario bajo circunstancia alguna. |
Asignar cuotas de disco a cualquier usuario o grupo solo hará falta utilizar edquota citando el nombre del usuario al cual se le quiere aplicar:
edquota fulano |
Lo anterior deberá devolver algo como lo siguiente a través de vi u otro editor de texto simple:
Disk quotas for user fulano (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda7 0 0 0 0 0 0 /dev/hda5 24 0 0 10 0 0 |
Suponiendo que se quiere asignar una cuota de disco de 6 MB para el usuario «fulano» en en /dev/hda7 y /dev/hda5, se utilizaría lo siguiente:
Disk quotas for user fulano (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda7 0 0 6144 0 0 0 /dev/hda5 24 0 6144 10 0 0 |
El usuario siempre podrá rebasar una cuota de gracia pero nunca una cuota absoluta.
El sistema tiene de modo predeterminado un periodo de gracia de 7 días que se puede modificar con el mandato edquota -t, donde se puede establecer un nuevo periodo de gracia por días, horas, minutos o segundos.
Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/hdb7 7days 7days /dev/hdb5 7days 7days |
La cuota de gracia establece los límites de bloques o inodos que un usuario tiene en una partición. Cuando el usuario excede el límite establecido por la cuota de gracia, el sistema advierte al usuario que se ha excedido la cuota del disco sin embargo permite al usuario continuar escribiendo hasta que trascurre el tiempo establecido por el periodo de gracia, tras el cual al usuario se le impide continuar escribiendo sobre la partición. Suponiendo que quiere asignar una cuota de gracia de 6 MB en /dev/hda7 y /dev/hda5, la cual podrá ser excedida hasta por 7 días, se utilizaría lo siguiente:
Disk quotas for user fulano (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda7 0 6144 0 0 0 0 /dev/hda5 24 6144 0 10 0 0 |
Si se quiere que todo aplique para los usuarios existentes, a partir de UID 510, por ejemplo, suponiendo que tiene al usuario "pepito" como molde (note por favor el acento grave en el mandato justo antes de awk, no es una comilla ni apostrofe):
edquota -p pepito `awk -F: '$3 > 510 {print $1}' /etc/passwd`
|
Utilice el mandato edquota con el usuario fulano.
edquota fulano
|
Asigne al usuario «fulano» una cuota de disco de 50 MB en todas las particiones con cuota de disco habilitada:
Disk quotas for user fulano (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hda7 0 0 51200 0 0 0 /dev/hda5 24 0 51200 10 0 0 |
Desde otra terminal acceda hacia el sistema como el usuario fulano y ejecute el mandato quota y observe con detenimiento la salida:
Disk quotas for user fulano (uid 501): Filesystem blocks quota limit grace files quota limit grace /dev/hda7 0 0 51200 1 0 0 /dev/hda5 24 0 51200 10 0 0 |
Realice una copia del directorio /usr/lib como el subdirectorio ~/prueba-cuotas dentro de su directorio de inicio:
cp -r /usr/lib ~/prueba-cuotas
|
Notará que llegará un momento en el que el sistema indicará que ya no es posible continuar copiando contenido dentro de ~/prueba-cuotas debido a que se ha agotado el espacio en la partición.
Utilice de nuevo el mandato quota y observe con detenimiento la salida, en donde aparecerá un asterisco justo junto a la cantidad en la columna de bloques bloques, el cual indica que se ha excedido la cuota del disco:
Disk quotas for user fulano (uid 501): Filesystem blocks quota limit grace files quota limit grace /dev/hda7 0 0 51200 1 0 0 /dev/hda5 51200* 0 51200 7439 0 0 |
Para poder volver a escribir sobre la partición, es necesario liberar espacio. Elimine por completo el directorio ~/prueba-cuotas y vuelva a utilizar el mandato quota:
rm -fr ~/prueba-cuotas
|
Alcance Libre
http://www.alcancelibre.org/staticpages/index.php/04-disk-quota