BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Help - Quotas de usuarios en linux!!!

Este tema está cerrado a nuevas respuestas. Abre un nuevo tema para retomar la conversación.
N3m0

Que son las cuotas?
Las cuotas permiten especificar limites en dos aspectos del almacenamiento
en disco: El numero de inodos que puede poseer un usuario o un grupo; y el
numero de bloques de disco que puede ocupar un usuario o un grupo.

La idea que se esconde detrás de las cuotas es que se obliga a los usuarios
a mantenerse debajo de su limite de consumo de disco, quitándoles su
habilidad de consumir espacio ilimitado de disco en un sistema.

Las cuotas se manejan en base al usuario y al sistema de ficheros. Si el
usuario espera crear ficheros en mas de un sistema de ficheros, las cuotas
deben activarse en cada sistema de ficheros por separado.

Estado actual de las cuotas en Linux.

Según he oído el soporte de cuotas fue integrado en el núcleo a partir
de la versión 1.3.8xr. Ahora forma parte dela revisión 2.0 del núcleo de Linux.
Si su sistema no soporta las cuotas, le recomiendo encarecidamente una actualización.

Actualmente la cuotas funcionan únicamente para los sistemas de ficheros
de tipo ext2.

Requisitos para usar Cuotas en Linux.

Núcleo
La versión 2.x del núcleo esta disponible en

sunsite.unc.edu/pub/Linux/kernel/v2.0/

Software de Cuotas
Dependiendo de la distribución de Linux que posea, puede tener o no el
software de cuotas instalado en su sistema. Si no lo esta, copia el
código fuente de las cuotas de la siguiente dirección:

ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz.

----------------------------------------------------------------------------
Puesta en servicio de las cuotas en Linux - 1ª Parte: La configuración

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.

Puesta en servicio de las cuotas en Linux - 2ª Parte: Asignando cuotas a los
usuarios

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.

Asignando cuota para un usuario concreto.

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.

Asignando cuota para un grupo concreto.

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)

Asignando la misma cuota a unos cuantos usuarios.

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).

----------------------------------------------------------------------------

Varios comandos sobre cuotas

Quotacheck

Quotacheck se usa para explorar el uso de disco en un sistema de ficheros,
y actualizar el fichero de registro de cuotas "quota.user" al estado mas
reciente. Recomiendo ejecutar quotacheck periódicamente al arrancar el
sistema, o vía cronjob cada cierto tiempo (pongamos 1 semana?).

Repquota

Repquota produce un resumen de la información de cuota de un sistema de
ficheros. Veamos un ejemplo del resultado de repquota:

# 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 y Quotaoff

Quotaon se usa para activar la administración de cuotas; quotaoff para
desactivarla. Ambos ficheros son similares actualmente. Se ejecutan
durante el arranque y la parada del sistema.

🗨️ 1
BocaDePez
BocaDePez

Muchas gracias
un saludo