Você está na página 1de 7

Sistema de quotas de disco no Linux

O sistema de quotas de disco serve para que você possa limitar o uso do disco dos usuários e
grupos do sistema. Um exemplo de seu uso seria em uma empresa de grande porte onde os
funcionários armazenam seus dados em um servidor central. Caso não limitemos o uso do disco,
estes podem armazenar arquivos que não dizem a respeito do seu trabalho sobrecarregando o disco
e logo a rede da empresa.

Este tutorial usou como base a distribuição Mandriva One 2008.1, creio não haver dificuldades
em outras distribuições.

2. Instalação

Para que o sistema de quotas funcione, o kernel em uso deve estar compilado com suporte a
quotas.
Na distribuição Mandriva o suporte já é nativo ao kernel. A instalação será realizada com o
gerenciado de pacotes URPMI, podendo ser feita a qualquer uma que a sua distribuição suportar.

# urpmi quota

3. Configuração

Deve-se especificar no arquivo /etc/fstab quais sistemas de arquivos terão a quota habilitada.

Normalmente usa-se o /home pois é onde os usuários/grupos tem a permissão de gravação em


disco. /dev/hda2 / ext3 defaults,grpquota 1 1 /dev/hda3 /home ext3 defaults,usrquota,grpquota 1 1
Percebam que na quarta coluna foram adicionadas entradas que habilitam o sistema de quotas para
aqueles sistemas de arquivos.
O sistema de arquivos /dev/hda2 (/ - Raíz) terá suporte a quota por grupos (grpquota), já o
/dev/hda3 (/home) terá suporte a quota por usuários (usrquota) e grupos (grpquota).
Com os sistemas de arquivos habilitados, devemos agora criar nossos arquivos que irão guardar
as informações das quotas:

# touch /aquota.group
# touch /aquota.user
# chmod 0600 /aquota.*

Estes arquivos apenas o usuário root terá permissão de leitura e gravação.


Após estes passos é necessário montar novamente os sistemas de arquivos.

# mount -o remount /

4. Utilitários de quota

4.1. quotacheck

Antes de colocarmos o sistema de quotas para funcionar, é preciso checar a integridade do


sistema de arquivos.

# quotacheck -auvgm
quotacheck [opções]

-a Checa todas as quotas para os sistemas de arquivos configurados no arquivo /etc/fstab.

-u usuário Checa somente sistemas de arquivos onde será feita a quota por usuários.

-g grupo Checa somente sistemas de arquivos onde será feita a quota por grupos.

-m Não tenta remontar sistemas de arquivos de apenas leitura. Faz a checagem forçada
em sistemas de arquivos em modo de leitura e escrita

-f Faz a checagem forçada mesmo o sistemas de quotas estando habilitado no sistema de


arquivos. Não é recomendado.

-v Mostra todas as informações executadas pelo quotacheck.

Mais informações sobre as opções do quotacheck podem ser encontradas em sua página de
manual.

4.2. quotaon, quotaoff

Os utilitários quotaon e quotaoff servem para habilitar e desabilitar quotas aos sistemas de
arquivos, respectivamente.

Sempre que vai haver a checagem de integridade dos sistemas de arquivos deve-se desabilitar o
sistema de quotas e depois habilitá-lo.

#quotaon -aug

4.3. edquota, setquota

Com nosso sistema de quotas funcionando é hora de editar as quotas dos usuário/grupos.

# edquota user

Disk quotas for user user (uid 500):

Filesystem blocks soft hard inodes soft hard

/dev/sda5 24 0 0 6 0 0

Onde:

* Filesystem: Sistema de arquivos que estaremos editando as quotas (/dev/sda5)

* Blocks: Número de blocos, especificado em kbytes que o usuário user tem em disco.

* Soft: Restrição mínima que o usuário poderá usar. Edite conforme sua política.
* Hard: Restrição máxima que o usuário poderá usar. Edite conforme sua política, lembrando que
este valor o usuário nunca irá ultrapassar.

* Inodes: Número de arquivos que o usuário possui na partição.

* Soft: Restrição mínima de arquivos que o usuário poderá usar.

* Hard: Restrição máxima de arquivos que o usuário poderá usar. Ambos devem ser editados
conforme sua política.

Caso deixe com “0”, nenhum limite será imposto ao usuário/grupo.

Algumas dúvidas podem surgir em relação aos soft e hard limits

* Soft Limits: É o limite mínimo que o usuário pode gravar em disco. Assim que esse limite é
ultrapassado o usuário receberá avisos sobre sua quota excedida. Ainda será possível gravar mais
arquivos naquela partição até que chegue em hard limit ou até que seu tempo que foi determinado
chegue ao fim.

* Hard Limits: Quando o usuário chegar a este limite ele apenas poderá liberar espaço na partição.
Se o limite estiver especificado por grupo, caso algum usuário chegue em hard limit nenhum outro
usuário do grupo poderá escrever naquela partição, mesmo havendo espaço para ele.

Podemos especificar um tempo de tolerância que permite que o usuário fique entre soft limit e
hard limit

# edquota -tf /home

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/sda5 7days 7days

Onde:

* Filesystem: Sistema de arquivos onde iremos aplicar o tempo.

* Block grace period: Tempo de tolerância para usuários/grupos que ultrapassam sua quota soft,
antes de passar a valer como hard.

* Inode grace period: Tempo de tolerância para usuários/grupos que excedem o número de arquivos
de soft, antes de passar a valer como hard.

Este tempo de tolerância pode ser editado por dias, horas, minutos e segundos.
Algumas das opções do edquota:

edquota [opções]

-u usuário Edita as quotas de usuário.

-g grupo Edita as quotas do grupo.

-t Edita o tempo de tolerância (grace period) para os soft limits de cada sistema de arquivos.

-f filesystem Operações específicas para o sistema de arquivos determinado.

-p usuário Copia a configuração da quota de um usuário para outro.

Um outro programa para edição de quota de forma não interativa é setquota.

# setquota -a -u user 5000 7000 150 250

Desta maneira já passamos os valores soft e hard dos limites de bloco e inodes respectivamente.

setquota [opções]

-u usuário Define a quota para usuário.

-g grupo Define a quota para um grupo de usuários.

-a Todos os sistemas de arquivos com quotas.

-t Define o tempo de tolerância para usuários e grupos. Tempo especificado em segundos.

-r Define quotas para sistemas de arquivos remotos.

Sempre após ter modificado a quota de usuário/grupo é importante que executemos o quotacheck
para atualizar os arquivos aquota.user e aquota.group.

Lembre-se de que primeiro deve-se desabilitar o suporte a quota ao sistema de arquivos, para
depois executar a checagem e voltar a habilitar.

Nesse período em que foi desabilitado o suporte a quota, o sistema de arquivos esta como
somente leitura, caso houver algum acesso ao disco para gravação, este será recusado.
4.4. quota

Para que possamos visualizar o uso em disco e seus limites, usamos o utilitário quota.

# quota user

Disk quotas for user user (uid 500):

Filesystem blocks quota limit grace files quota limit grace

/dev/sda5 32 5000 7000 8 1000 2000

quota [opções]

-u usuário Exibe a quota do usuário.

-g grupo Exibe a quota do grupo.

-v Exibe a quota mesmo que esta não esteja definida ao usuário passado como parâmetro.

-l Exibe as quotas dos sistemas de arquivos locais.

-q Exibe a quota quando somente esta for excedida.

4.5. repquota

É de suma importância termos relatórios do sistema de quota.

O comando repquota faz isso para nós.

# repquota -a

repquota [opções]

-a Exibe em um relatório todas as quotas de todos sistemas de arquivos definidos em /etc/mtab

-v Exibe junto ao relatório um cabeçalho descritivo

-u usuário Exibe um relatório de utilização por usuário

-g grupo Exibe um relatório de utilização por grupo

-n Exibe um relatório não traduzindo UIDs/GIDs por nomes


4.6. convertquota

O utilitário convertquota, como o próprio nome sugere faz a conversão da versão do sistema de
quotas utilizado.

Converte os antigos arquivos de quota quota.user e quota.group para aquota.user e aquota.group.

Já estamos utilizando o novo formato.

# convertquota -ug / && rm -f /quota.*

Irá fazer a conversão e remover os antigos arquivos.

4.7. warnquota

Um excelente utilitário que envia um e-mail ao usuário que ultrapassou seu soft limit. Toda sua
configuração se encontra no arquivo /etc/warnquota.conf.

Tipicamente o warnquota é agendado para executar diariamente via cron. Para que se tenha uma
visão maior sobre cada utilitário, é de extrema importância ler suas páginas de manual.

5. Aplicando as quotas

Após ter instalado o sistema de quotas, os usuários que já estão criados no sistema não tem
limites de quotas.

Para cada um deles deve-se estabelecer o sistema. Agora imagine você ter que editar as quotas
para 500 usuários.

Para não ter editar as quotas dos usuários manualmente, será necessário apenas termos uma
conta, ao qual esta servirá como modelo para as restantes.

# adduser model -d /home/model -s /bin/bash # edquota -u model

Edite as quotas como bem queira.

Depois de visualizar as quotas do usuário model (quota -u model), basta criar um shellscript para
automatizar a tarefa.
#!/bin/bash

cd /home

for USUARIO in *

do

edquota -u{$USUARIO} -p model

done

Dê permissão de execução e execute-o para que todos os outros usuários tenham seus limites de
quotas.

6. Conclusão

Como foi visto, o sistema de quotas é algo que um administrador de sistema que se preze deve
dominar.

O sistema de quotas é de fácil entendimento e leva ao administrador um poder total sobre o uso
do disco por seus usuários.

7. Referências

Guia Foca Linux

Viva o Linux

Quota Mini-Howto

Páginas de manual: quota, edquota, setquota, repquota, quotacheck, quotaon, quotaoff, convertquota
e quotacheck.

– Alterações – Eduardo de Oliveira Hernandes

Fonte: http://www.mandrivabrasil.org/site/content/view/59/29/

Você também pode gostar