Olá!
Uma funcionalidade do Linux não muito usada, mas bem útil em algumas situações é o controle de cotas em disco.
Um bom exemplo para utilização de cotas em disco é um cenário onde as estações de trabalho usam Linux com uma base de autenticação centralizada e perfil remoto por NFS.
Certa vez administrei um servidor nesse cenário.
Esse servidor possuia o diretório /home compartilhado via NFS com os Desktops. Isso tornava o ambiente bem flexível mas tinha um limite de espaço em disco. Sem o uso de cotas um usuário poderia encher seu diretório home com arquivos pesados e impedir os demais usuários de gravarem nos seus respectivos diretórios. Para evitar isso, as cotas em disco são uma ótima escolha.
Nesse post, colocarei os passos para habilitar e configurar cotas. Explicarei alguns comandos e no final há um
vídeo demonstrando todo o procedimento na prática.
O ambiente consiste em uma máquina virtual (VirtualBox) com um disco de sistema operacional e um segundo disco de 5 GB com LVM. Foi criado um LV de 2 GB para ser usado nos testes de Cotas.
Durante os testes serão usados dois usuários e um grupo:
Usuários: mbsec e mbsec2
Grupo: mbsec
Vamos lá!!
Basicamente, os passos serão os seguintes:
1 - Habilitar recurso de cotas na partição.
2 - Configurar cotas para um determinado usuário.
3 - Fazer testes de cópia e gravação na partição com esse usuário.
4 - Repetir os passos 2 e 3, porém com cotas de grupos.
Seguem os comandos de forma abreviada:
1 - Primeiramente precisamos habilitar os recursos de cotas na partição.
Para isso, abra o arquivo /etc/fstab e adicione as opções usrquota e grpquota nas opções da partiação.
Veja o exemplo:
/dev/MBSEC/LV1 /mnt/Cotas/LV1 ext4 defaults,usrquota,grpquota 0 0
Após adicionar as opções no /etc/fstab, aplique elas remontando a partição:
# mount -o remount /dev/MBSEC/LV1
Para conferir se as opções foram habilitadas, digite o comando mount e verifique os detalhes da partição.
2 - Como as cotas foram recém habilitadas, precisamos criar os arquivos de configurações de cotas.
São dois arquivos. Um deles armazena configurações de usuários e outro de grupo.
Seus nomes são aquota.user e aquota.group, respectivamente. Eles são arquivos binários e não podemos editá-los em texto claro com o vi, por exemplo.
Para criação desses arquivos, a melhor forma é executar o comando quotacheck.
Esse comando verifica as configurações de cotas das partições com o recurso habilitado e grava as informações nos arquivos mencionados acima. Caso esses arquivos não existam, ele cria. : )
Então, digite o seguinte comando:
# quotachek -augv
-a : diz para ele checar todas as partições com cotas habilitadas.
-u : verifica as configurações de cotas para os usuários.
-g : verifica as configurações de cotas para os grupos.
-v : modo verbose, para mostrar detalhes do que ele está fazendo.
Após executar o comando, verifique o ponto de montagem da partição. Deverão aparecer os dois arquivos mencionados acima.
OBS.: Eles sempre são criados na raíz do ponto de montagem da partição.
3 - Agora vamos habilitar o controle de cotas no sistema:
# quotaon -a
OBS.: Se quiser desabilitar é só digitar quotaoff -f
4 - Agora é só editar as cotas e fazer os testes.
O comando para edição de cotas é o edquota. Os principais parâmetros são descritos abaixo:
-u usuário : edita as configurações de cotas de usuário
-g grupo : edita as configurações de cotas de grupo.
-t : define as configurações de grace time para os usuários.
-t -g : define as configurações de grace time para os grupos.
-p usuário1 usuário2 : copia as configurações de cotas de usuário1 para usuário2.
5 - Verificar as cotas de usuários e grupos.
Para ver o status das cotas de usuários e grupos, use o comando repquota. Ele mostra um relatório das configurações de cotas. Abaixo seguem as principais opções:
-a : lista configurações de todas as partições que tenham cotas habilitadas.
-u : lista as configurações de usuários (é a opção default).
-g : lista as configurações de grupos.
OBS.: As cotas são atualizadas de tempos em tempos. Se estiver fazerndo algum teste e precisar forçar a atualização das cotas, execute o comando quotacheck.
Ok. Esses comandos acima são o que precisamos conhecer para gerenciar cotas. Agora temos alguns conceitos de cotas.
Quando editar as cotas de um usuário ou grupo, haverão as seguintes colunas:
Filesystem
Indica a partição onde as cotas serão aplicadas.
blocks
Indica a quantidade de blocos atualmente sendo usada por aquele usuário ou grupo.
Considere 1 bloco = 1 KB
soft
Essa é a cota soft de arquivos, ou seja, os usuários podem usar até esse limite sem problemas. Após esse limite eles terão um tempo (grace time) de tolerância para limpar alguns arquivos e ficar abaixo desse limite. Se eles não limparem nada até o grace time expirar, qualquer cópia será bloqueada até que algo seja apagado.
hard
Esse é o limite absoluto que cada usuário ou grupo tem. Em nenhuma hipótese os usuários conseguirão ocupar mais espaço do que definido aqui.
As próximas 3 colunas (inodes, soft e hard) tem os mesmos conceitos explicados acima, porém para o controle de inodes e não de arquivos.
Ok. Agora já sabemos os comandos e os conceitos. Vamos aos testes práticos para resolver as dúvidas remanescentes: