O espaço em disco não é infinito pelo que por vezes é necessário limitar a quantidade de dados (quotas) que cada utilizador pode armazenar.

Nesta configuração iremos definir quotas para os utilizadores na partição /dev/sda6, montada em /home.

Instalação

root@server:~# apt install quota

Configuração

O sistema de ficheiro deve ser montado com as opções para suportar quotas. Para tal, devemos editar o ficheiro de configuração /etc/fstab e acrescentar a opção usrquota nas opções de montagem de /home:

# /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>
# [...]
/dev/sda6       /home           ext4  defaults,usrquota   0   2
# [...]

O sistema de ficheiros deverá ser montado novamente, de modo a ter em conta as alterações:

root@server:~# mount -o remount /home

Em seguida o sistema de quotas deverá ser inicializado:

root@server:~# quotacheck -cum /home

E finalmente o sistema de quotas dever ser ativado:

root@server:~# quotaon /home

Gestão de Quotas

Definição das quotas

As cotas podem ser definidas por utilizador, recorrendo ao editor de quotas edquota -u <utilizador>:

root@server:~# edquota -u fribeiro

O valor hard é o máximo absoluto que o utilizador pode usar; o valor soft pode ser excedido por algum tempo, definido como um período de graça (grace time) definido, por omissão, para 7 dias.

Disk quotas for user fribeiro (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda6                      4852   10223616   10485760        469        0        0

Neste exemplo definimos quotas de 9,5Gb (ou 10223616Kb) para o limite soft e 10Gb (ou 10485760Kb) para o limite hard para o utilizador fribeiro.

Verificação das quotas

A quotas por utilizador podem ser consultadas com o comando quota:

root@server:~# quota -s fribeiro
Disk quotas for user fribeiro (uid 1000):
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
     /dev/sda6   4852K   9984M  10240M             469       0       0

Também é possível gerar um relatório das quotas para todos os utilizadores com o comando repquota:

root@server:~# repquota -as
*** Report for user quotas on device /dev/sda6
Block grace time: 7days; Inode grace time: 7days
                        Space limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --     28K      0K      0K              4     0     0
fribeiro  --   4852K   9984M  10240M            469     0     0

Referências