Escenario 2.B: Cotas de disco
Introdución
As cotas de disco permiten controlar o espazo de disco que consume cada usuario ou grupos de usuarios. As cotas para cada usuario son por sistema de ficheiros (particións) e non por carpetas, co cal se para carpetas distintas un usuario debera ter cotas distintas é necesario que cada unha delas resida nun sistema de ficheiros distinto (nun disco ou partición distinta).
- Na imaxe obsérvase que cada sistema de ficheiros ten implantado un sistema de control de cotas de disco.
As cotas son implantadas polo administrador do sistema para cada sistema de ficheiros (disco/partición) para:
- usuarios: cada usuario terá os seus propios límites.
- grupos: todos os usuarios dun grupo, en conxunto, teñen os límites do propio grupo. Se un usuario do grupo supera os límites da cota os demais usuarios do grupo tamén se verán afectados.
Hai dous tipos básicos de cota:
- Cota de disco ou de bloque: determina a cantidade de espazo en disco que pode ser usada por un usuario ou grupo nun sistema de ficheiros (disco/partición).
- Cota de ficheiros ou de inode: determina o número máximo de carpetas ou ficheiros que un usuario/grupo pode crear nun sistema de arquivos (disco/partición).
Ademais os administradores poden definir dous límites para cada un dos tipos de cota anteriores:
- Cota suave, flexible / soft quota: é un límite de advertencia, que lle informa ao usuario que se está aproximando á hard quota. Este límite ten un período de graza, que se verá a continuación.
- Cota forte, ríxida / hard quota: límite que o usuario/grupo non pode superar.
Finalmente para a soft quota existe un período de graza:
- Grace period: Cando un usuario/grupo supera a soft quota, este ten un período de graza (por defecto 7 días) para que volva a baixar dese límite antes que se lle limite totalmente como se dunha hard quota se tratase.
Pódense aplicar períodos de grazas xenéricas para todos os usuarios/grupos dun sistema de arquivos (disco/partición) ou para un usuario/grupo concreto dese sistema de arquivos.
Nos seguintes puntos instalarase o xestor de cotas para os puntos de montaxe:
- /home/iescalquera, e xestionaremos as cotas dos cartafois persoais dos usuarios.
- /comun: pero non asignaremos ningunha cota aos usuarios até máis adiante, para ver que pasa cos usuarios cando non teñen cota.
O modo que ten o sistema para saber cantos recursos ou canto consumen por usuario é moi sinxelo, simplemente se analiza de que obxectos (ficheiros/carpetas) é propietario ese usuario.
Este é o formato que ten unha cota: os tres primeiros números están en KB.
Disk quotas for user xan (uid 10003): Filesystem blocks quota limit grace files quota limit grace /dev/sda6 4 10 17 1 0 0
- Lenda:
- blocks: espazo consumido en disco (bytes)
- quota: soft quota (KB)
- limit: hard quota (KB)
- files: número de arquivos/carpetas que o usuario ten nese sistema de arquivos (de cantos é dono).
- grace: canto tempo lle resta ao usuario para poder estar por enriba da soft quota.
Con df -h podemos comprobar o espazo (total/consumido/libre) que hai en cada punto de montaxe:
- No servidor:
root@dserver00:~# df -h
Sist. Fich Tamaño Usado Disp Uso% Montado en
rootfs 5,2G 1,5G 3,5G 31% /
udev 10M 0 10M 0% /dev
tmpfs 50M 324K 50M 1% /run
/dev/disk/by-uuid/3247f690-d4fe-4033-93f3-ac0846d2edd0 5,2G 1,5G 3,5G 31% /
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 236M 0 236M 0% /run/shm
/dev/sda6 14G 164M 14G 2% /home
/dev/sdb1 4,6G 141M 4,3G 4% /home/iescalquera
/dev/sdb2 5,3G 139M 4,9G 3% /comun
- Observar ás liñas 10 e 11, onde se ve os espazos dos puntos de montaxe das carpetas persoais e de comun.
- No cliente:
uadmin@uclient01:~$ df -h
df: "/run/user/112/gvfs": Permiso denegado
Sist. Fich Tamaño Usado Disp Uso% Montado en
/dev/sda1 19G 3,9G 14G 22% /
none 4,0K 0 4,0K 0% /sys/fs/cgroup
udev 487M 4,0K 487M 1% /dev
tmpfs 100M 916K 99M 1% /run
none 5,0M 0 5,0M 0% /run/lock
none 498M 292K 497M 1% /run/shm
none 100M 40K 100M 1% /run/user
dserver00:/home/iescalquera 4,6G 141M 4,3G 4% /home/iescalquera
dserver00:/comun 5,3G 139M 4,9G 3% /media/comun
- Nas liñas 11 e 12, vese que os puntos de montaxe do cliente que apuntan ao servidor coinciden cos espazos do servidor desas carpetas.
Instalación do xestor de cotas en dserver00
Para instalar:
apt-get install quota
Xestión de contas con comandos: /home/iescalquera
Aplicar cotas aos sistemas de arquivos
Unha vez que se instalou o paquete hai que indicar a que sistemas de arquivos se desexa aplicar a cota, neste caso aos sistemas de arquivos montados en
- /home/iescalquera.
- /comun
- Ademais débese indicar se se van aplicar cotas de usuario, de grupo ou ambas.
Editar o ficheiro /etc/fstab e engadir os parámetros que indican que se desexan aplicar cotas de usuario e grupo sobre o sistema de arquivos montados nos puntos anteriores.
nano /etc/fstab
Ollo!!! que cada quen ten UUID distinto, por iso cada quen debe engadir manualmente os parámetros usrquota (cotas de usuario) e grpquota (cotas de grupo) se se van aplicar cotas ós grupos, senón non é preciso indicar ese parámetro. Neste caso só se van aplicar as de usuario aínda que se configurarán tamén as de grupo.
root@dserver00:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=3247f690-d4fe-4033-93f3-ac0846d2edd0 / ext4 errors=remount-ro 0 1
# /home was on /dev/sda6 during installation
UUID=93111745-c95c-4a3d-aff0-721dacdf5741 /home ext4 defaults 0 2
# swap was on /dev/sda5 during installation
UUID=730d435e-4862-4ca5-bb72-ff2571ec017c none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
#/dev/sdb1: LABEL="Usuarios"
UUID=f7d9a85b-5847-449a-9f98-29dfecf4239e /home/iescalquera ext4 defaults,usrquota,grpquota 0 0
#/dev/sdb2: LABEL="Comun" UUID="726f54f6-960b-4ad0-9ec2-35eace42290a"
/dev/sdb2 /comun ext4 defaults,usrquota,grpquota 0 0
- Observar que aos puntos de montaxe / (sda1) e /home (sda6) decidimos non aplicarlle cotas. Pero isto é neste caso, o lector en función da súa situación real debe valorar que precisa.
Finalmente, só resta remontar os sistemas de arquivos aos que se lles aplicaron as cotas (se o sistema de arquivos está en uso hai que reiniciar):
mount -o remout /home/iescalquera mount -o remout /comun
Executando o comando mount, podemos ver que se están aplicando as opcións de cota para os puntos de montaxe anteriores.
root@dserver00:~# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
...
...
/dev/sdb1 on /home/iescalquera type ext4 (rw,relatime,quota,usrquota,grpquota,data=ordered)
/dev/sdb2 on /comun type ext4 (rw,relatime,quota,usrquota,grpquota,data=ordered)
Os ficheiros de cotas
Na raíz do sistema de arquivos no que se aplican as cotas deben existir dous arquivos nos que se almacena a información sobre as cotas e consumos de cada usuario: aquota.user e aquota.group. Eses ficheiros poden crearse reiniciando o equipo:
root@dserver00:~# ls /home/iescalquera/ -l
total 40
drwxr-x--- 4 root g-usuarios 4096 Mai 7 07:35 alumnos
-rw------- 1 root root 7168 Mai 8 17:56 aquota.group
-rw------- 1 root root 7168 Mai 8 17:56 aquota.user
drwx------ 2 root root 16384 Mai 6 14:49 lost+found
drwxr-x--- 4 root g-profes 4096 Mai 7 11:26 profes
root@dserver00:~#
root@dserver00:~# ls /comun -l
total 32
-rw------- 1 root root 7168 Mai 8 17:56 aquota.group
-rw------- 1 root root 6144 Mai 8 17:56 aquota.user
drwxrwxr-x 2 root g-dam1-profes 4096 Mai 7 08:04 dam1
drwxrwxr-x 2 root g-dam2-profes 4096 Mai 7 14:43 dam2
drwxrwx--- 2 root g-profes 4096 Mai 7 14:40 departamentos
drwx------ 2 root root 4096 Mai 7 08:09 lost+found
Pero farase facendo uso do comando quotacheck, que chequea, repara e crea, se non existen os arquivos anteriores.
quotacheck -avug # a: indica que se aplique o comando para tódolos sistemas de arquivos que teñen cotas. # v: amosa información de saída do comando. # u: chequea os ficheiros de cotas de usuarios # g: chequea os ficheiros de cotas dos grupos # para ver máis parámetros como sempre: quotachek --help.
Este comando debese executar coas cotas desactivadas, que é como están a primeira vez, para desactivalas usar o comando quotaoff.
quotaoff -avug /dev/sdb1 [/home/iescalquera]: group quotas turned off /dev/sdb1 [/home/iescalquera]: user quotas turned off /dev/sdb2 [/comun]: group quotas turned off /dev/sdb2 [/comun]: user quotas turned off # este comando tamén podería executarse co mesmo resultado como: # quotaoff -vug /home/iescalquera /comun
- Comprobamos o estado dos ficheiros de cotas.
quotacheck -avug quotacheck: Scanning /dev/sdb1 [/home/iescalquera] done quotacheck: Checked 94 directories and 162 files quotacheck: Scanning /dev/sdb2 [/comun] done quotacheck: Checked 5 directories and 2 files
Finalmente activar as cotas:
quotaon -av /dev/sdb1 [/home/iescalquera]: group quotas turned on /dev/sdb1 [/home/iescalquera]: user quotas turned on /dev/sdb2 [/comun]: group quotas turned on /dev/sdb2 [/comun]: user quotas turned on # este comando tamén podería executarse co mesmo resultado como: # quotaon -avug # quotaon -v /home/iescalquera /comunq
Establecer cotas para os usuarios
- Imos establecer cotas de consumo de espazo distintas en /home/iescalquera se o usuario é un profesor/a ou un alumno/a.
- As cotas a modo de exemplo e en números redondos son:
- Profesorado:
- Límite brando: 250 MB (250000 KB en números redondos)
- Límite duro: 300 MB (300000 KB en números redondos)
- Alumnado:
- Límite brando: 150 MB (150000 KB en números redondos)
- Límite duro: 200 MB (200000 KB en números redondos)
- Profesorado:
- Para establecer cotas hai que facelo por usuario ou por grupo individualmente, para tratar varios usuarios débese realizar cun script ou combinación de comandos. E isto último é o que imos facer.
- Primeiro imos crear un par de usuarios locais (profe, alumnno) de dserver00, que nos van ser vir de plantilla para aplicar as cotas ao resto dos usuarios.
- Eses 2 usuarios imos deixalos bloqueados, e así ninguén vai poder entrar con eles.
- Pero imos asignarlle cotas para logo copiarllas aos usuarios que nos interesen.
useradd profe -M -N -u 1001 useradd alumno -M -N -u 1002
#-M non crea o home do usuario #-N non crear un grupo primario para o usuario co mesmo nome #-u indicamos o uid do usuario
#Comprobamos que están creado no ficheiro de usuarios locais (/etc/passwd) dserver00:~# tail -n 2 /etc/passwd profe:x:1001:100::/home/profe:/bin/sh alumno:x:1002:100::/home/alumno:/bin/sh
- Estes usuarios xa están bloqueados, pois non teñen contrasinal. Pero imos asegurarnos:
root@dserver00:~# passwd -l profe passwd: password expiry information changed. root@dserver00:~# passwd -l alumno passwd: password expiry information changed.
- Asignar cotas de usuario a profe e alumno. Neste caso imos aplicar so cotas ao sistema de ficheiros de /home/iescalquera:
setquota -u profe 250000 300000 0 0 /home/iescalquera setquota -u alumno 150000 200000 0 0 /home/iescalquera # u: cota de usuario (g sería de grupo) # X50000: de soft quota de espazo de disco (bloques) # X00000: de hard quota de espazo de disco (bloques) # 0: non hai soft quota para número de arquivos e subcarpetas (inodes) # 0: non hai hard quota para número de arquivos e subcarpetas (inodes) # como sempre máis axuda en: setquota –help ou man quota
Outra forma de editar as cotas dun usuario é con edquota:
edquota -u profe
Ábrese un editor semellante ó nano que permite editar as cotas de usuario para cada sistema de ficheiros.
GNU nano 2.2.6 Ficheiro: /tmp//EdP.auJgyPp Disk quotas for user profe (uid 10005): Filesystem blocks soft hard inodes soft hard /dev/sdb1 0 250000 300000 0 0 0 /dev/sdb2 0 0 0 0 0 0
Como o usuario profe, neste caso, non ten ningún arquivo en /home/iescalquera nin en /comun o seu consumo en espazo (blocks) e ficheiros/carpetas (inodes) é cero.
Observar como non ten límites para /comun (/deb/sdb2).
Os consumos pódense consultar cos seguintes comandos: quota e repquota
quota profe Disk quotas for user profe (uid 1001): none # comando executado polo usuario root. # no caso de que o propio usuario inicie sesión simplemente debe escribir: quota
O usuario profe aínda non ten nada no sistema de arquivos /home/iescalquera, por iso indica none.
O resultado de executar repquota: informar das cotas dos usuarios en cada sistema de ficheiros.
repquota -a *** Report for user quotas on device /dev/sdb2 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 32 0 0 5 0 0 noe -- 4 0 0 1 0 0 *** Report for user quotas on device /dev/sdb1 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 36 0 0 6 0 0 sol -- 32 0 0 6 0 0 noe -- 2300 0 0 186 0 0 mon -- 28 0 0 5 0 0 tom -- 28 0 0 5 0 0 pia -- 2152 0 0 182 0 0
- Observar:
- Só se amosan os usuarios que son propietarios de algún ficheiro/carpeta no sistema de arquivos.
- En /comun (sdb2) só aparece noe, porque foi o único que no usuario creou algo aí.
- En /home/iescalquera (sdb1) non aparece nin profe nin alumno porque non teñen nada creado aí, pero bloqueados como están e cos permisos que aí hai, nunca van ter nada nese punto de montaxe.
- Os únicos usuarios que entraron nos clientes foron noe e pia, os demais teñen nos seus cartafois persoais o que se lles copiou de skel no escenario 2.A.
- O período de graza para cada tipo de cota é, por defecto, de 7 días.
- Ningún usuario ten cotas (límites), iso é porque aínda non llas aplicamos, que é o imos facer a continuación cun script.
- Só se amosan os usuarios que son propietarios de algún ficheiro/carpeta no sistema de arquivos.
- Para iso usaramos o comando edquota co parámetro -p (prototipo). Onde copiaremos as cotas de profe ou de alumno segundo proceda.
- SCRIPT: 10_asignar_cotas_usuarios.sh
#!/bin/bash
#SCRIPT PARA ASIGNAR COTAS AOS USUARIOS.
#Lembrar que cada usuario ten o seguinte formato
# Un/unha profe -> sol:x:10000:10000:Profe - Sol Lua:/home/iescalquera/profes/sol:/bin/bash
# Un/unha alumna -> mon:x:10002:10000:DAM1 Mon Mon:/home/iescalquera/alumnos/dam1/mon:/bin/bash
# Observar que posición ocupan os campos e que están separados por :
# Imos etraer con awk dos usuarios con ID (campo 3) entre 10000 e 60000 o campo
# Usuario (campo 1)
#Volcamos tódolos usuarios (locais e ldap) do sistema a un ficheiro
getent passwd>usuarios.txt
#Extraemos o campo usuario
for USUARIO in $( awk -F: '$3>=10000 && $3<60000 {print $1}' usuarios.txt )
do
#USUARIO vai ter o seguinte formato
# sol
#Comprobamos se o usuario/a é un profe
if ( groups $USUARIO | grep profes )
then
#Copiamos cota do prototipo profe ao usuario profe
edquota -p profe $USUARIO
else
#Copiamos cota do prototipo alumno ao usuario alumno/a
edquota -p alumno $USUARIO
fi
done
rm usuarios.txt
- Executamos o script:
sh 10_asignar_cotas_usuarios.sh sol : g-usuarios g-profes g-dam1-profes g-dam2-profes noe : g-usuarios g-profes g-dam2-profes #As dúas saídas que amosa a execución do script é polo grep, cando coincide que o usuario é un profe.
- Comprobacións:
repquota -a *** Report for user quotas on device /dev/sdb2 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 32 0 0 5 0 0 noe -- 4 0 0 1 0 0 *** Report for user quotas on device /dev/sdb1 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 36 0 0 6 0 0 sol -- 32 250000 300000 6 0 0 noe -- 2572 250000 300000 210 0 0 mon -- 28 150000 200000 5 0 0 tom -- 28 150000 200000 5 0 0 pia -- 2152 150000 200000 182 0 0
- Vemos que agora os usuarios do dominio teñen as cotas correctas en función do tipo de usuario no sistema de ficheiros /home/iescalquera (sdb1).
- Por agora en /comun non aplicamos cotas.
As cotas de usuario nos equipos cliente
Os usuarios que inicien sesión nos equipos cliente, tanto GNU/Linux como MS Windows, xa teñen as cotas aplicadas de xeito transparente, ben por nfs ou ben por samba. As cotas en realidade son controladas polo servidor onde residen os sistemas de arquivos aos que os usuarios acceden remotamente.
As cotas nos clientes: Ubuntu Desktop
En Ubuntu Desktop, nautilus (o xestor de arquivos) non informa de canto é o espazo real que o usuario ten nun sistema de arquivos montado por nfs, senón que amosa a capacidade total de todo o sistema de arquivos sen ter en conta a cota do usuario.
Por outra banda, en modo consola non se poden consultar as cotas, por defecto.
En calquera dos dous casos, as cotas están funcionando, pois son controladas polo servidor de arquivos.
Nos postos de traballo para que os usuarios poidan consultar a súa cota en modo consola, precísase instalar o paquete quota. Instalámolo en uclient01 co usuario uadmin.
sudo apt-get install quota
No caso do navegador de arquivos nautilus, como xa se dixo, non informa de cal é o límite máximo de cota de disco para os usuarios, só informa cando o usuario non pode escribir no disco por superar a súa cota.
- IMPORTANTE: Cando se borran arquivos e carpetas estas van para á papeleira, e seguen consumindo espazo no disco e por tanto na cota do usuario. Haberá que baleirar o lixo se se desexa liberar espazo.
Realización de probas
- Entramos co usuario noe e abrimos un terminal.
- Executamos o comando quota:
noe@uclient01:~$ quota Disk quotas for user noe (uid 10001): Filesystem blocks quota limit grace files quota limit grace dserver00:/home/iescalquera 3324 250000 300000 263 0 0
- Co comando dd (http://es.wikipedia.org/wiki/Dd_%28Unix%29) imos ir creando ficheiros de distintos tamaños e ver que pasa coa cota.
- Comezamos creando un ficheiro de 50 MB
noe@uclient01:~$ dd if=/dev/zero of=ficheiro50M bs=50M count=1 1+0 records in 1+0 records out 52428800 bytes (52 MB) copiados, 0,630515 s, 83,2 MB/s noe@uclient01:~$ quota Disk quotas for user noe (uid 10001): Filesystem blocks quota limit grace files quota limit grace dserver00:/home/iescalquera 54572 250000 300000 264 0 0
- Creamos agora un ficheiro de 200 MB
noe@uclient01:~$ dd if=/dev/zero of=ficheiro200M bs=200M count=1 1+0 records in 1+0 records out 209715200 bytes (210 MB) copiados, 2,95366 s, 71,0 MB/s noe@uclient01:~$ quota Disk quotas for user noe (uid 10001): Filesystem blocks quota limit grace files quota limit grace dserver00:/home/iescalquera 259368* 250000 300000 7days 264 0 0 noe@uclient01:~$ ls -lh fich* -rw-r--r-- 1 noe g-usuarios 200M Mai 8 20:23 ficheiro200M -rw-r--r-- 1 noe g-usuarios 50M Mai 8 20:22 ficheiro50M
- Observamos que nos marca cun * que superamos o límite brando e que temos 7 días de gracia para resolver o problema de espazo. Se pasados eses 7 días estamos por encima do límite brando (non fai falla superar o límite duro) non nos vai deixar crear nada. E isto é un problema nun contorno gráfico como logo veremos.
- Intentamos copiar o ficheiro de 200 MB.
noe@uclient01:~$ cp ficheiro200M ficheiro200Mbis cp: erro escribindo "ficheiro200Mbis": Cota de disco superada noe@uclient01:~$ ls -lh fich* -rw-r--r-- 1 noe g-usuarios 200M Mai 8 20:23 ficheiro200M -rw-r--r-- 1 noe g-usuarios 40M Mai 8 20:43 ficheiro200Mbis -rw-r--r-- 1 noe g-usuarios 50M Mai 8 20:22 ficheiro50M noe@uclient01:~$ quota Disk quotas for user noe (uid 10001): Filesystem blocks quota limit grace files quota limit grace dserver00:/home/iescalquera 300000* 250000 300000 6days 269 0 0
- Observar como comezou a copiar o ficheiro até alcanzar o límite duro.
- Nas cotas xa indica que estamos no límite duro
- Ollo que temos un ficheiro que se comezou a copiar, e aínda que non se copiou todo non se cancelou o proceso, senón que temos unha copia dun anaco dun ficheiro.
- En modo gráfico teríamos o seguinte:
- Pero non teríamos ningún aviso de exceso de cota.
- Se tratamos de realizar a copia dun dos ficheiros, por exemplo o de 50MB, obteríamos este aviso.
- Aquí pasa o mesmo, créase un novo ficheiro, pero que non é copia completa do orixinal.
- Informes no servidor:
root@dserver00:~/scripts# repquota -a *** Report for user quotas on device /dev/sdb1 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 36 0 0 6 0 0 sol -- 28 250000 300000 5 0 0 noe +- 300000 250000 300000 6days 270 0 0 mon -- 28 150000 200000 5 0 0 tom -- 28 150000 200000 5 0 0 pia -- 9044 150000 200000 275 0 0 *** Report for user quotas on device /dev/sdb2 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 20 0 0 5 0 0 noe -- 4 0 0 1 0 0
- En uclient01 borramos os ficheiros que pretendían ser copias dos orixinas, e quedamos con estes últimos soamente.
- Baleirar a papeleira se se mandaron a esta.
noe@uclient01:~$ ls fich* -lh -rw-r--r-- 1 noe g-usuarios 200M Mai 8 20:23 ficheiro200M -rw-r--r-- 1 noe g-usuarios 50M Mai 8 20:22 ficheiro50M noe@uclient01:~$ quota Disk quotas for user noe (uid 10001): Filesystem blocks quota limit grace files quota limit grace dserver00:/home/iescalquera 259484* 250000 300000 6days 268 0 0
Xestión de períodos de graza
Os períodos de graza poden xestionarse para un usuario concreto ou para todo o sistema de arquivos. Imos ver como se xestionarían en dserver00.
- Xestionar o período de graza de todo o sistema de arquivos con: edquota -t ou setquota -t.
#Editamos a cota para todo o sistema edquota -t 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/sda6 7days 7days
- Aquí poden modificarse os períodos de graza para todo un sistema de arquivos. Non cambiar nada
- Outra forma sería a seguinte, pero non imos cambiar nada.
setquota -ta X Y # X e Y son os segundos que se asignan ó período de graza de cada tipo de cota (bloques ou inodos) # 7 días son 604800 segundos # t: para indicar que se desexan modificar os tempos de graza para sistemas de arquivos. # a: modificar os tempos de graza para tódolos sistemas de arquivos.
- Para cambiar o período de graza dun usuario usaranse os comandos anteriores co parámetro -T.
edquota -Tu noe
- Editaríamos as cotas para noe
GNU nano 2.2.6 Ficheiro: /tmp//EdP.awiVqb2
Times to enforce softlimit for user noe (uid 10001): Time units may be: days, hours, minutes, or seconds Filesystem block grace inode grace /dev/sdb1 602602seconds unset /dev/sdb2 unset unset
Indica os segundos (ou horas/minutos/días) que quedan de período de graza para o usuario noe. Tamén se poderían modificar eses valores para o usuario noe.
- Imos agora aplicarlle un tempo de gracia para bloques de 60 segundos ao usuario noe.
Con setquota:
setquota -Tu noe 60 120 /home/iescalquera setquota: Not setting inode grace time on /dev/sdb1 because softlimit is not exceeded. # T: modificar os tempos de graza dun usuario ou grupo. # u: aplicar a usuarios. # 60: segundos de graza para o espazo consumido en disco. Ou sexa, pasado un minuto o usuario noe # non vai poder seguir creando obxectos. # 120: segundos para o período de graza de inodes, non se aplicará porque non se superou o límite de # soft quota de inodes. # Se se desexa que non teña cota, nos segundos hai que indicar un cero (0).
- Agora, pasado un minuto, en uclient01 con noe tentamos crear un cartafol:
noe@uclient01:~$ mkdir proba mkdir: Non é posíbel crear o directorio "proba": Cota de disco superada
- Non podemos porque superamos o tempo de gracia.
- So nos queda borrar os ficheiros que fan superar o límite brando.
noe@uclient01:~$ rm ficheiro* noe@uclient01:~$ mkdir proba
Cotas excedidas e inicio de sesión gráfica
Unha vez que se alcance a hard quota ou se supere o tempo de graza da soft quota o usuario vai ter problemas co inicio de sesión gráfica, podendo non iniciarse a sesión, ao non poder crear as carpetas e ficheiros temporais que se crean/modifican cando se inicia sesión en modo gráfico.
Por exemplo, no caso anterior, no que se esgotou o tempo de graza para o usuario noe, este vai poder iniciar a sesión gráfica, pero non pode facer nada, pois gnome non pode crear todas as carpetas e ficheiros de configuración personalizados do usuario noe.
Se alguén proba a entrar en modo gráfico e ordenador se queda “colgado”, sen poder facer nada: entrar nunha consola (CTRL+ALT+F1 ou se se usa VirtualBox, tecla host (xeralmente CTRL DEREITA) + F1), entrar co usuario en cuestión e borrar ficheiros que fagan baixar do límite duro, ou brando se se superou o tempo de gracia.
Por tanto, para facilitar que noe poida iniciar sesión gráfica ten que borrar información, ou se lle amplía a cota ou se lle quita a cota.
Quitar as cotas a un usuario
As cotas quítanse poñendo ceros nos límites que se desexan desactivar.
setquota -u USUARIO 0 0 0 0 /sistema de arquivos
Instantáneas
- Instalar as cotas en uclient02
- Realizamos tamén instantáneas dos tres equipos: Escenario 2.B - Cotas de disco