Bienvenido(a) a Alcance Libre 27/05/2022, 14:29
Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2016 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. Esta licencia deberá aparecer como primer texto del documento distribuido
La utilización de cuotas en el sistema de archivos permite a los administradores de sistemas realizar la gestión eficiente del espacio compartido en disco por múltiples usuarios. Las cuotas restringen la capacidad de los usuarios para acceder hacia los recursos de sistema, tales como bloques (asignación de unidades), e inodos (entradas del sistema de archivos). Cuando una cuota es excedida se aplica una política determinada por el administrador. Las cuotas se administran individualmente por cada sistema de archivos y son únicas para usuarios y/o grupos.
Una cuota de disco es un límite establecido por un administrador, el cual restringe ciertos aspectos del uso del sistema de archivos. El objetivo de las cuotas es limitar, de forma razonable, el espacio utilizado en el sistema de archivos. Suelen configurarse en servidores de correo electrónico, servidores HTTP con anfitriones virtuales, servidores de archivos, en algunos sistemas de escritorio y en cualquier escenario donde el administrador del sistema necesite controlar el espacio utilizado por lo usuarios en el sistema de archivos.
De acuerdo a Wikipedia, un inodo, nodo-i o también nodo índice, es una estructura de datos propia de los sistemas de archivos en sistemas operativos tipo POSIX (Portable Operating System Interface for Unix), como GNU/Linux. Un inodo contiene las características (permisos, fechas y ubicación) de un archivo regular, directorio o cualquier otro elemento que pueda contener el sistema de archivos.
Cada inodo queda identificado en el sistema de archivos por un número entero único y los directorios recogen una lista de parejas formadas por un número de inodo y un nombre identificativo que permite acceder a un archivo en particular. Cada archivo tiene un único inodo, pero puede tener más de un nombre en distintos lugares o incluso en el mismo directorio, para facilitar su localización.
De acuerdo a Wikipedia, un bloque es la cantidad más pequeña de datos que pueden transferirse en una operación de entrada/salida entre la memoria principal de una computadora y sus dispositivos periféricos o viceversa.
Puede aplicar cuotas en el sistema de archivos en aquellos servidores donde se desee limitar el sudo de sistema de archivos a los usuarios locales. Ejemplos:
Tiene poco o ningún sentido aplicar cuotas de sistema de archivos en servidores con servicios que utilizan su propio sistema de cuotas. Ejemplo:
El paquete quota viene incluido en la instalación estándar. Si se hizo una instalación mínima, puede instalarse ejecutando lo siguiente:
yum -y install quota |
El paquete quota viene incluido en la instalación estándar de SUSE™ Linux Enterprise Server. Ejecute lo siguiente si se hizo una instalación mínima:
yast -i quota |
Durante la instalación del sistema operativo debió asignarse una partición dedicada a cada uno los directorios /home y /var. Éstos son los únicos directorios debajo de los cuales los usuarios regulares pueden escribir datos —directorios de inicio y buzones de correo— y por tanto los únicos donde amerita aplicar cuotas al sistema de archivos.
Edite el archivo /etc/fstab.
vi /etc/fstab |
Si utiliza Ext4 como sistema de archivos en CentOS 6, Fedora™, Red Hat™ Enterprise Linux 6 o SUSE™ Linux Enterprise 11, puede utilizar cuotas con registro por diario (journaled quotas) sin modificar el núcleo del sistema o instalar otra versión de quota-tools. Las cuotas con registro por diario funcionan de modo similar al registro por diario de los sistemas de archivos Ext3/Ext4, garantizando la integridad de los archivos de cuotas, lo cual evita que el sistema se vea obligado a ejecutar automáticamente quotacheck después de un apagado incorrecto.
Añada a la columna de opciones de las particiones /var y /home, la opción usrjquota con el valor aquota.user, la opción grpjquota con el valor aquota.group y la opción jqfmt con el valor vfsv0:
Si utiliza Ext3 o Ext4 en ALDOS, CentOS o Red Hat™ Enterprise Linux, el siguiente es un ejemplo de cómo pudiera quedar la configuración de las particiones.
|
Si utiliza Ext3 o Ext4 openSUSE™ o SUSE™ Linux Enterprise Linux, el siguiente es un ejemplo de cómo pudiera quedar la configuración de las particiones.
|
![]() |
|
Si utiliza CentOS 5, Red Hat™ Enterprise Linux 5 o SUSE™ Linux Enterprise 10, oficialmente éstos carecen de soporte para cuotas con registro por diario. Requieren un parche en el núcleo de Linux para poder hacer uso de éstas. En estos sistemas operativos sólo se pueden utilizar cuotas sin registro por diario, por lo cual sólo se deben añadir las opciones usrquota y grpquota en el archivo /etc/fstab, en la columna de opciones correspondientes a las particiones /var y /home. Ejemplo:
|
Si utiliza Xfs como sistema de archivos en ALDOS, CentOS o Red Hat™ Enterprise Linux, el soporte de cuotas ya incluye registro por diario. El siguiente es un ejemplo de cómo pudiera quedar la configuración de las particiones.
|
Ejecute yast con disk como argumento:
yast disk |
Lea la advertencia, seleccione «Yes» y pulse la tecla ↵ (ENTER).
Seleccione la partición o volumen lógico correspondiente a «/home» y pulse la tecla ↵ (ENTER).
Aparecerá una pantalla con el resumen del dispositivo correspondiente a «/home». Seleccione Edit y pulse la tecla ↵ (ENTER).
Aparecerá la pantalla de edición de «/home». Seleccione «Fstab Options» y pulse la tecla ↵ (ENTER).
Seleccione la casilla «Enable Quota Support», pulse la tecla espaciadora para habilitar la opción y pulse la tecla ↵ (ENTER).
Regresará a la pantalla de edición de /home. Seleccione «Finish» y pulse la tecla ↵ (ENTER).
Regresará al resumen del dispositivo correspondiente a «/home».
Seleccione la partición o volumen lógico correspondiente a «/var», pulse la tecla ↵ (ENTER), seleccione Edit y pulse la tecla ↵ (ENTER).
Aparecerá la pantalla de edición de «/var». Seleccione «Fstab Options» y pulse la tecla ↵ (ENTER).
Seleccione la casilla «Enable Quota Support», pulse la barra espaciadora para habilitar la opción y pulse la tecla ↵ (ENTER).
Regresará a la pantalla de edición de «/var». Seleccione «Finish» y pulse la tecla ↵ (ENTER).
Regresará al resumen del dispositivo correspondiente a «/var». Seleccione «Next» y pulse la tecla ↵ (ENTER).
Aparecerá un resumen con las operaciones que se realizarán. Seleccione «Finish» y pulse la tecla ↵ (ENTER).
Regresará al intérprete de mandatos.
Deben aplicarse los cambios realizados a /home y /var reiniciando el sistema o bien ejecutando lo siguiente:
mount -o remount /home |
Lo anterior vuelve a leer las opciones de montado de cada una de las particiones y aplicá los cambios inmediatamente.
Ejecute quotacheck con las opciones -avugcm, donde a significa que se verifican todos los sistemas de archivos con soporte para cuotas, v significa que se devuelvan mensajes descriptivos, u significa que se verifiquen cuotas de usuario, g significa que se verifiquen cuotas de grupo, c significa omitir verificar archivos de cuota previos y crear nuevos archivos y m significa que se evite re-montar en modo de sólo lectura los sistemas de archivos, que idealmente se utiliza cuando se tiene procesos trabajando en las particiones:
quotacheck -avugcm |
El manual de quotacheck puede consultarse ejecutando lo siguiente:
man 8 quotacheck |
Para activar las cuotas recién configuradas, asumiendo que se están configurando las particiones correspondientes a /home y /var, ejecute lo siguiente:
quotaon /home |
A partir de este momento podrá aplicar cuotas en el sistema de archivos a todos los usuarios del sistema utilizando edquota.
Xfs requiere desmontar y volver a montar las particiones modificadas, pues carece de soporte para utilizar la opción remount para mount. Reinicie el sistema para aplicar los cambios si así es el caso.
Edquota se utiliza para gestionar las cuotas asignadas a usuarios y/o grupos. El manual de éste puede consultarse ejecutando lo siguiente:
man 8 edquota |
Es importante conocer que significa cada campo mostrado por edquota.
Blocks: Bloques. Corresponde a la cantidad de bloques de 1 Kb que está utilizando el usuario en cada sistema de archivos con soporte para cuotas. Jamás se debe modificar los datos de este campo. Inodes: Inodos. Corresponde al número de archivos que está utilizando el usuario. Un inodo (también conocido como Index Node) es un apuntador hacia sectores específicos en la unidad de almacenamiento en los cuales se encuentra la información de un archivo. Contiene además la información acerca de permisos de acceso así como los usuarios y grupos a los cuales pertenece el archivo. Jamás se debe modificar los datos de este campo. Soft: Limite de gracia. Limite de bloques de 1 KB o inodos que el usuario tiene permitido 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. |
Ejecute edquota especificando como argumento el nombre del usuario para asignar cuotas a cualquier usuario regular. Ejemplo:
edquota fulano |
Lo anterior deberá devolver algo similar a lo siguiente:
Disk quotas for user fulano (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sda7 8 0 0 1 0 0
/dev/sda5 24 0 0 10 0 0
|
Ejecute edquota con la opción -g y especificando como argumento el nombre del grupo para asignar cuotas a cualquier grupo de usuarios regulares. Ejemplo:
edquota -g desarrollo |
Lo anterior deberá devolver algo similar a lo siguiente:
Disk quotas for group desarrollo (gid 510):
Filesystem blocks soft hard inodes soft hard
/dev/sda7 4238 0 0 251 0 0
/dev/sda5 6234 0 0 340 0 0
|
Cuando se asignan cuotas a grupos, estás definen los límites en conjunto para todo el grupo de usuarios que pertenezcan a un grupo determinado.
Suponiendo que se quiere asignar una cuota de disco de 50 MiB para el usuario «fulano» en en /dev/sda7
y /dev/sda5
, se utilizaría lo siguiente:
Disk quotas for user fulano (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sda7 8 0 51200 1 0 0
/dev/sda5 24 0 51200 10 0 0
|
El usuario siempre podrá rebasar una cuota de gracia pero nunca una cuota absoluta.
De modo predeterminado el sistema asigna un periodo de gracia de 7 días, que se puede modificar ejecutando edquota con la opción -t:
edquota -t |
Donde se puede establecer un nuevo periodo de gracia, ya sea 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 un sistema de archivos en particular. 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 el sistema de archivos. Suponiendo que quiere asignar una cuota de gracia de 25 MiB en /dev/sda7
y /dev/sda5
, la cual podrá ser excedida hasta por 7 días, se utilizaría la siguiente configuración:
Disk quotas for user fulano (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sda7 0 25600 0 0 0 0
/dev/sda5 24 25600 0 10 0 0
|
Si se quiere aplicar un mismo esuqema de cuotas de disco para todos los usuarios regulares del sistema, a partir de UID 501, por mencionar un ejemplo y asumiendo que utilizará como plantilla el esquema de cuotas de disco del usuario «fulano», ejecute lo siguiente —por favor, note los dos acentos graves utilizados a continuación, pues se trata de un carácter diferente a la comilla simple:
edquota -p fulano `awk -F: '$3 > 501 {print $1}' /etc/passwd` |
Acceda al sistema como root.
Ejecute edquota con fulano como argumento para modificar los límites de este usuario:
edquota fulano |
Asigne al usuario «fulano» una cuota de gracia de 50 MiB, una cuota absoluta de 100 MiB, un límite de gracia de 1000 archivos y un límite absoluto de 1500 archivos en todas las particiones con cuota de disco habilitada:
Disk quotas for user fulano (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/sda7 0 51200 102400 0 1000 1500
/dev/sda5 24 51200 102400 10 1000 1500
|
Cambie el usuario fulano.
su -l fulano |
Consulte el manual de quota antes de continuar:
man 1 quota |
Ejecute quota para verificar las cuotas asignadas al usuario utilizado:
quota |
Observe con detenimiento la salida:
Disk quotas for user fulano (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda7 8 51200 102400 1 1000 1500
/dev/sda5 24 51200 102400 10 1000 1500
|
Copia el directorio /usr/lib como el sub-directorio ~/prueba-cuotas:
cp -r /usr/lib ~/prueba-cuotas
|
Notará que llegará un momento en el que el sistema indicará que ya es imposible continuar copiando contenido dentro de ~/prueba-cuotas debido a que se agotó el espacio disponible para el usuario en el sistema de archivos.
Ejecute de nuevo quota y observe con detenimiento la salida. En ésta aparecerá un asterisco junto a la cantidad mostrada en las columnas de bloques o bien inodos en los casos donde se hayan excedido las cuotas:
Disk quotas for user fulano (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda7 8 51200 102400 1 1000 1500
/dev/sda5 102400* 51200 102400 6days 1500* 1000 1500 6days
|
Es necesario liberar espacio para poder volver a escribir nuevamente sobre el sistema de archivos. Debido a que muy probablemente parte del contenido de /usr/lib se copió en modo de sólo lectura, cambie primero los permisos del contenido del directorio ~/prueba-cuotas a fin de disponer de permisos de lectura y escritura requeridos para borrar:
chmod -R u+w ~/prueba-cuotas |
Elimine el directorio ~/prueba-cuotas:
rm -fr ~/prueba-cuotas |
Ejecute de nuevo quota para verificar que nuevamente se está trabajando dentro de los límites establecidos:
quota |
La salida debe ser similar a la siguiente:
Disk quotas for user fulano (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda7 8 51200 102400 1 1000 1500
/dev/sda5 24 51200 102400 10 1000 1500
|
Salga de la sesión de fulano:
exit |
Última Edición: 30/08/2016, 21:20| Hits: 81,919