|
||
|
Antes mesmo de começarmos a falar sobre como limitar o uso de espaço em disco para os usuários ou grupo de usuários em Linux precisamos entender para que vamos querer isso. É importante você saber que o uso desse recurso só será válido em um ambiente multi-usuário. Se você tem uma máquina que possui muitos usuários, remotos ou não, é vital o uso desse recurso. Ele pode ser usado, por exemplo, para limitar o espaço em disco que cada usuário tem acesso para receber emails, para sua conta shell, para uma eventual conta de hospedagem de homepages ou uma área de acesso FTP. Tal recurso no Linux é conhecido como Quota. A idéia de quota é limitar o uso de disco de cada usuário do seu sistema. Esse limite implica em um controle maior do seu servidor para evitar panes que uma possível falta de espaço possa gerar. A única limitação para o uso de quota é que até o momento, quota só tem suporte para o FileSystem ext2 (default no seu Linux). Para fazer o uso desse recurso você vai precisar preparar seu kernel para isso. O único define que você precisa ativar é CONFIG_QUOTA=y. Dependendo da distribuição do seu Linux,
você pode não ter os softwares controladores. Caso
você não tenha, o endereço para obtê-los
é:
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
.
É recomendado que o recurso de quota seja inicializado durante o boot. Não faz sentido você ter que fazer isso sempre que quiser manter esse recurso ativo. No entanto, é importante saber que ele só poderá ser inicializado depois que os filesystems, no /etc/fstab, tiverem sido montados. Um exemplo usual, que foi colocado dentro do arquivo
/etc/rc.d/rc.local [slackware]:
Isso vai ativar o sistema de quota. É importante verificar se seus scripts de shutdown possuem a habilidade de desativar a Quota. Procure nos scripts de runlevels 0 (halt), 1 (administrative state), 6 (shutdown) para ver se possuem alguma referência ao binário quotaoff. Caso não haja, temos um exemplo: _____________________________________
Para que os filesystems suportem o uso de quota, é necessário uma pequena mudança no arquivo /etc/fstab. Normalmente temos alguma coisa do gênero:
/dev/hda1 / ext2 defaults 1 1
Para habilitar o uso de quota por usuário pelo filesystem, você precisa inserir a palavra chave "usrquota" no quarto campo. Veja como ficaria nosso exemplo:
/dev/hda1 / ext2 defaults,usrquota 1 1
Usando a palavra chave "grpquota", temos agora suporte quota por grupo ao filesystem especificado. Vejam como ficaria:
/dev/hda1 / ext2 defaults,grpquota 1 1
É possível também ter os dois, grupos e
usuários:
/dev/hda1 / ext2 defaults,usrquota,grpquota 1 1
Vale lembrar que, caso você tenha mais de um filesystem, é necessário que você faça isso em todos eles. Por exemplo:
/dev/hda1 / ext2 defaults,usrquota,grpquota 1 1
Nesse exemplo estou habilitando suporte de quota para usuários e grupos no device hda1, e apenas para usuários no device hda2. O recurso de quota precisa de 2 arquivos que são gerenciados pelo kernel e pelas ferramentas de edição dos atributos de quota. Esses dois arquivos ficam na raiz do filesystem e precisam ser criados e ter atribuição de leitura e escrita apenas para o usuário root. Ninguém mais que ele. Para fazer isso siga os passos:
touch /partition/quota.user
Substitua partition, pelo PATH correspondente. Caso seja a própria raiz, use 'touch /quota.user' por exemplo. Você vai precisar renicializar o seu computador para as mudanças fazerem efeito. Note que o reboot ficou um pouco mais lento.
Nos exemplos a seguir teremos um usuário com login
'cox', e vamos considerar o grupo 'webmaster'. Antes de
verificar o uso das ferramentas, precisamos iniciar alguns
conceitos importantes para melhor compreensão futura.
blocks - Um block é a unidade que especifica espaço em disco, no nosso caso expresso em kilobytes. O que seria um 1024-block. Soft limit - é muito usado para contas shell. É o limite do usuário. Se essa opção for usada junto com 'Grace period', o usuário que ultrapassar esse limite vai receber notificações que está acima do permitido, durante um período estabelecido de tempo. Se não estiver junto com 'Grace period' esse valor é o limite do usuário. Hard Limit - funciona apenas com 'Grace period', especifica o limite absoluto. O usuário não pode passar desse limite de forma alguma. Grace Period - É o tempo limite antes que as condições de limite do 'soft limit' sejam impostas sobre o filesystem. Mais abaixo iremos mostrar como especificar isso. As ferramentas propriamente ditas:
- edquota:
Você vai precisa usar o comando para especificar uma quota para nosso usuário 'cox'.
#edquota -u cox
Vai abrir um editor contendo:
Quotas for user cox:
Edite os valores soft e hard.
Espeficicando quota para o grupo 'games'.
#edquota -g games
Quotas for group games:
Para especificar o 'Grace period': #edquota -t
Time units may be: days, hours, minutes, or seconds
Edite o número de dias ao seu gosto. - quotacheck: Faz a atualização dos arquivos quota.user e quota.group. É recomendado o uso deles no boot inicial. Caso seu servidor fique vários dias ligados sem um boot, é recomendável também o uso de um 'crontab' para atualizações periódicas. - repquota: Produz um pequeno resumo da situação atual do seu sistema no que diz respeito ao uso de seus filesystems
# repquota -a
Espero com isso, possibilitar qualquer administrador tormar seu ambiente mais seguro com uso de Quotas. É importante notar que você pode já no script de 'adduser' acionar um mecanismo de auto inclusão na tabela de quotas. Qualquer dúvida que existir sobre esse assunto, me enviem um email ou mandem para o fórum. |
||
|
|