bertie@scn.org
), laveneno@hotmail.com
)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.
quota
?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.
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 ext2.
Kernel:
La versión 2.0 del kernel está disponible en
http://sunsite.unc.edu/pub/Linux/kernel/v2.0
Quota
Dependiendo de la distribución de Linux de que disponga, puede que ya
disponga del software de quota
instalado en su sistema. Si no lo
tiene, puede obtenerlo de
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
Reconfigure su kernel y añada el soporte para las cuotas seleccionando `y' en:
Quota support (CONFIG_QUOTA) [n] y
quota
El software de quota
está disponible en
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
modificar los ficheros de comandos de inicio del sistema para activar las cuotas en el arranque del sistema. Aquí hay 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
La regla de oro es que siempre se active quota
DESPUÉS de
montar los sistemas de ficheros de /etc/fstab
, de cualquier otro
modo 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.
Esto implica modificar el
fichero /etc/fstab
.
Las particiones que no tienen activada la cuota aparecen más o menos así:
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /usr ext2 defaults 1 1
Para activar el soporte para las cuotas de usuario en un sistema de
ficheros, añada ``usrquota
'' al cuarto campo, el que contiene
la palabra ``defaults
'' (vea la página de manual de fstab
para más detalles).
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /usr ext2 defaults,usrquota 1 1
Cambie ``usrquota
'' por ``grpquota
'' si necesita soporte para
cuotas de grupos en un sistema de ficheros.
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /usr ext2 defaults,grpquota 1 1
Si necesita ambos tipos de cuotas,
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /usr ext2 defaults,usrquota,grpquota 1 1
quota.user
'' y
``quota.group
'' 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:
touch /partition/quota.user
touch /partition/quota.group
chmod 600 /partition/quota.user
chmod 600 /partition/quota.group
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.
Esta operación se realiza mediante el comando edquota
(vea la
página de manual de edquota
para más detalles).
En este punto yo normalmente ejecutaría ``quotacheck
'' con los
argumentos ``-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.
Aquí tiene un ejemplo. Tengo un usuario con el nombre bob en mi
sistema. El comando ``edquota -u bob
'' hace que entre dentro de
vi
(o el editor especificado en mi variable de entorno EDITOR)
para editar la cuota del usuario bob en cada una de las
particiones en las que la cuota esté habilitada:
Quotas for user bob:
/dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500)
inodes in use: 356, limits (soft = 1000, hard = 1500)
``blocks in use
" es el número total de bloques (en KBytes) que
el usuario ha consumido en la partición.
``inodes in use
" es el número total de ficheros que el usuario
tiene en la partición.
Tengo en mi sistema un grupo llamado games. ``edquota -g games
''
entra en el editor vi
de nuevo y me permite editar la cuota 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 asignar cuotas rápidamente, por ejemplo a 100 usuarios, en mi sistema con los mismos valores que para bob, primero debo editar las cuotas de bob manualmente, y entonces ejecutar:
edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`
asumiendo que está usando csh
, y que asigna los UIDs de los
usuarios a partir del 500.
En adición a edquota
, hay 3 valores con los que debe familiarizarse:
el ``Límite Blando'' (Soft Limit), el ``Límite Duro'' (Hard
Limit) y el ``Periodo de Gracia'' (Grace Period).
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.
actúa 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.
ejecutado con el comando
``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
``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
Cambie la parte de ``0 days
'' por el tiempo que estime razonable.
Yo personalmente escogería 7 días (o 1 semana).
se usa para obtener el uso de disco para un sistema de
ficheros, y modifica el registro de cuotas en el fichero
``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?).
produce información de resumen de las cuotas en un sistema de ficheros. Este es un ejemplo del resultado:
# 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
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.