Linux - Quota de disco
Quotas de disco permitem controlar o uso do disco por usuário ou grupo, ou por ambos (usuário e grupo). São normalmente utilizadas em sistemas multi-usuários e não em sistemas mono-usuário (desktop) e é gerenciada somente pelo usuário root. Neste artigo irei cobrir a versão mais utilizada de implementação de quota: vfsv0 (versão 2).
Habilitar quotas de disco
Atualmente temos 3 tipos de quotas de disco: vfsold (versão 1), vfsv0 (versão 2) e xfs (quota de disco para o sistema de arquivos XFS).
Neste artigo irei cobrir a versão mais utilizada: vfsv0 (versão 2).
Para habilitar quota de disco vfsv0 é necessário que seu kernel tenha suporte. Os kernels 2.4 e 2.6 tem total suporte necessário. Já versões anteriores do kernel tem suporte incompleto a quota de disco e será necessário recompilar para ter suporte a quota de disco.
Neste artigo estou utilizando o kernel 2.6.15-23-386.
Agora será necessário instalar as ferramentas para manipular as quotas de disco.
Utilizando a ferramenta APT-GET:
# apt-get install quota
Vamos habilitar quota de disco para a partição de disco que queremos utilizar quotas. Para isso é necessário editar o arquivo de configuração das tabelas de sistemas de arquivos, o /etc/fstab, e incluir as opções "usrquota" (para quota por usuários), e/ou "grpquota" (para quota por grupos).
No exemplo abaixo estamos habilitando quota de disco para usuários e grupos na partição /dev/hda4 montada em /share:
Neste artigo irei cobrir a versão mais utilizada: vfsv0 (versão 2).
Para habilitar quota de disco vfsv0 é necessário que seu kernel tenha suporte. Os kernels 2.4 e 2.6 tem total suporte necessário. Já versões anteriores do kernel tem suporte incompleto a quota de disco e será necessário recompilar para ter suporte a quota de disco.
Neste artigo estou utilizando o kernel 2.6.15-23-386.
Agora será necessário instalar as ferramentas para manipular as quotas de disco.
Utilizando a ferramenta APT-GET:
# apt-get install quota
Vamos habilitar quota de disco para a partição de disco que queremos utilizar quotas. Para isso é necessário editar o arquivo de configuração das tabelas de sistemas de arquivos, o /etc/fstab, e incluir as opções "usrquota" (para quota por usuários), e/ou "grpquota" (para quota por grupos).
No exemplo abaixo estamos habilitando quota de disco para usuários e grupos na partição /dev/hda4 montada em /share:
# /etc/fstab: static file system information. # # proc /proc proc defaults 0 0 /dev/hda2 / reiserfs notail 0 1 /dev/hda4 /share ext3 defaults,usrquota,grpquota 0 2 /dev/hda3 /mnt/win98 vfat defaults,utf8,umask=007,gid=46 0 1 /dev/hda1 none swap sw 0 0 /dev/hdd /media/cdrom0 udf,iso9660 user,noauto 0 0
OBS: Somente sistemas de arquivos ext2, ext3 e xfs possuem suporte a quota de disco no Linux.
Após editar o arquivo /etc/fstab e habilitar a quota de disco no ponto de montagem /share, será necessário remontar para aplicar as alterações feitas.
# mount -o remount,rw /share
OBS: Se você incluir quota de disco para o diretório raiz do sistema "/", será necessário reiniciar o sistema.
Execute o comando "mount" para verificar se as opções de quotas estão habilitadas.
Exemplo:
# mount | grep share
/dev/hda4 on /share type ext3 (rw,usrquota,grpquota)
Utilizando os comandos quotachek, quotaon e quotaoff:
O comando quotacheck é utilizado para checar quotas de disco em todos os sistemas de arquivos em /etc/fstab. E também é utilizado para criar os arquivos com informações sobre as quotas: aquota.user e aquota.group.
O comando quotaon é utilizado para habilitar a checagem de quota de disco.
Já o comando quotaoff desabilita quotas de disco no sistema.
Ambos os comandos quotacheck e quotaon são normalmente incluídos nos scripts de inicialização do sistema, para checar e habilitar a quota de disco após você reiniciar seu computador.
Agora iremos criar os arquivos com informações sobre as quotas dos usuários e grupos.
No exemplo abaixo as seguintes opções serão passadas para os comandos quotacheck e quotaon:
- -a - Checa todos os sistemas de arquivos em /etc/fstab que estão habilitados como "automount";
- -u - Checa quotas de usuários (opção padrão);
- -g - Checa quotas de grupos;
- -v - Mostra mais detalhes na saída do comando (modo verbose).
# quotacheck -augv
quotacheck: Quota for users is enabled on mountpoint /share so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.
# quotaon -augv
quotaon: using /share/aquota.group on /dev/hda4 [/share]: Device or resource busy
quotaon: using /share/aquota.user on /dev/hda4 [/share]: Device or resource busy
Agora vamos verificar se os arquivos aquota.user e aquota.group foram criados em /share:
# cd /share
# ls -lah
total 37K
drwxr-xr-x 3 root root 4,0K 2006-09-16 17:10 .
drwxr-xr-x 23 root root 616 2006-09-16 14:16 ..
-rw------- 1 root root 6,0K 2006-09-16 17:10 aquota.group
-rw------- 1 root root 6,0K 2006-09-16 17:10 aquota.user
drwx------ 2 root root 16K 2006-09-16 14:13 lost+found
OBS: Perceba que os arquivos aquota.user e aquota.group tem permissão de leitura e escrita somente para o usuário root, já que somente o usuário root pode gerenciar quotas no sistema.
vfsold (versão 1) - módulo quota_v1
vfsv0 (versão 2) - módulo quota_v2
Parabéns pelo artigo!