Definindo quotas por arquivo criado

Continuando a falar sobre quotas, falei como definir quotas por tamanho de arquivo. Agora, vamos ver o exemplo de quota por arquivos criados! Isso quer dizer, que vamos limitar quantos arquivos o usuário pode criar no disco!

O procedimento para definir quota por arquivo, é praticamente o mesmo que fizemos para o neo. Aqui, para a trinity, vamos definir que ela pode criar 30 arquivos, no máximo 40.

O arquivo ficará assim:

# edquota -u trinity
Disk quotas for user trinity (uid 1001):
Filesystem blocks soft hard inodes soft hard
/dev/sda6   24         0       0        6        30    40

Lembrando que na coluna de inodes não mexemos no valor que ja esta la porque são os arquivos que a trinity criou antes de definirmos quota para ela!

Consultando as quotas da trinity:

# quota -u trinity
Disk quotas for user trinity (uid 1001):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sda6      24       0       0               6      30      40

Depois podemos virar trinity e fazer o teste com a quantidade de arquivos:

# su – trinity

$ i=1
$ while true
> do
> touch plans_matrix_$i.txt
> let i++
> done

Esse script deve ficar rodando ate que a trinity não consiga escrever no disco:

sda6: warning, user file quota exceeded.
sda6: write failed, user file limit reached.
touch: impossível executar sobre `plans_matrix_35.txt’: Disk quota exceeded

Consultando a quantidade de arquivos que a trinity criou:

$ ls
plans_matrix_10.txt  plans_matrix_16.txt  plans_matrix_21.txt  plans_matrix_27.txt  plans_matrix_32.txt  plans_matrix_6.txt
plans_matrix_11.txt  plans_matrix_17.txt  plans_matrix_22.txt  plans_matrix_28.txt  plans_matrix_33.txt  plans_matrix_7.txt
plans_matrix_12.txt  plans_matrix_18.txt  plans_matrix_23.txt  plans_matrix_29.txt  plans_matrix_34.txt  plans_matrix_8.txt
plans_matrix_13.txt  plans_matrix_19.txt  plans_matrix_24.txt  plans_matrix_2.txt   plans_matrix_3.txt   plans_matrix_9.txt
plans_matrix_14.txt  plans_matrix_1.txt   plans_matrix_25.txt  plans_matrix_30.txt  plans_matrix_4.txt
plans_matrix_15.txt  plans_matrix_20.txt  plans_matrix_26.txt  plans_matrix_31.txt  plans_matrix_5.txt

Se você notaram, quando estávamos rodando o script, a trinity parou de criar arquivos a partir do ‘plans_matrix_35.txt’. Isso aconteceu porque a trinity ja tinha arquivos criados. Vejam:

$ ls -a | grep ^[.]
.
..
.bash_history
.bash_logout
.bashrc
.profile
.viminfo

Com o comando acima, listamos somente os arquivos ocultos… Se somarmos a quantidade dos arquivos ocultos com a quantidade de arquivos criados, teremos a quantidade máxima de arquivos que a trinity pode criar!
Ah, e o ‘.’ e os ‘..’ na saída do comando acima, indicam o diretório atual e o diretório acima, respectivamente. Para saber, mais, tem um post sobre esse assunto.

Bom… a trinity não escreve mais no disco… como root, vamos analisar o uso do disco:

# repquota -a
*** Report for user quotas on device /dev/sda6
Block grace time: 7days; Inode grace time: 7days
Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
———————————————————————-
root      —   71368       0       0              4     0     0
ivani     —      16       0       0              4     0     0
trinity   -+      24       0       0             40    30    40  6days
neo       +-   30000   20000   30000   none       8     0     0
smith     —      16       0       0              4     0     0
nix       —      16       0       0              4     0     0

Assim como o neo, a trinity não pode mais criar arquivos… a não ser que apague alguns 🙂 !

Com isso, conseguimos gerenciar melhor o uso do disco pelos usuários… não permitindo que somente um fominha ocupe todo espaço em disco!

Ate o próximo post! 🙂

Anúncios

Definindo quota por tamanho de arquivos

Depois que fizemos toda a instalação do pacote e habilitamos o suporte a quota na partição, é hora de definir as quotas para os usuários. As quotas podem ser definidas de duas maneiras:

Por tamanho (blocks)
Por quantidade (inodes)

Os valores dos limites das quotas são baseados em três parâmetros:

soft limits – número máximo de blocos de 1kb que um usuário ou grupo pode alocar no disco; ou ainda, número máximo de inodes (arquivos) que um usuário ou grupo pode criar. Usuários ou grupos podem ultrapassar esse limite por um período de tempo.
hard limits – número máximo de blocos de 1kb que um usuário ou grupo pode alocar no disco; ou ainda, número máximo de inodes (arquivos) que um usuário ou grupo pode criar. Ao contrário de soft limits, esse valor nunca poderá ser ultrapassado.
grace period –  a tradução desse nome, ‘período de graça’ é engraçada 😛 . Bem, falando sério… o grace period é o tempo que usuário ou grupo pode ultrapassar de seu soft limit. É um tipo de bônus; porém se o usuário ou grupo não apagar os arquivos até o final do grace period, o sistema não alocará mais espaço em disco para esse usuário ou grupo. O padrão do grace period é de 7 dias.

Vamos editar quotas para o usuário neo. O comando para edição de quotas é o edquota. Ele abre um editor de textos (no meu caso, o vim) para editar a quotas:

# edquota neo

A saída do arquivo, quando executamos o comando edquota, é similar a tabela abaixo:

Tabela comando edquotaVamos definir para o neo um total de 20mb (soft limit) e um limite máximo de 30mb (hard limit). O arquivo fica assim:

Disk quotas for user neo (uid 1002):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sda6                        24      20000      30000          6        0        0

Lembrando que no arquivo, não alteramos a coluna blocks e nem a coluna inodes, pois elas contém blocos e inodes que já foram utilizados pelo usuário. Após editar os valores, salvar o arquivo e sair. Para consultar as quotas do usuário, usamos o comando quota:

# quota -u neo
Disk quotas for user neo (uid 1002):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sda6      24   20000   30000               6       0       0

Bom, vamos testar as quotas do neo… vamos logar como neo e criar alguns arquivos para testar se a quota esta funcionando mesmo ou não:

# su – neo

$ echo “Eu sou o neo” > identidade.txt; while true; do
> cat identidade.txt >> matrix.txt; cat matrix.txt >> identidade.txt;
> done

O script deve ficar rodando até o usuário lotar o disco:

$ echo “Eu sou o neo” > identidade.txt; while true; do
> cat identidade.txt >> matrix.txt; cat matrix.txt >> identidade.txt;
> done

sda6: warning, user block quota exceeded.
sda6: write failed, user block limit reached.
cat: erro de escrita: Disk quota exceeded

Consultando o tamanho dos arquivos do neo:

$ du -hs *.txt
17M     identidade.txt
13M     matrix.txt

Eita que o neo já não pode mais escrever no disco… vamos consultar novamente a quota dele:

# quota -u neo
Disk quotas for user neo (uid 1002):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sda6   30000*  20000   30000   6days       8       0       0

Isso quer dizer que o neo só pode voltar a escrever novamente no disco quando apagar um arquivo… Esse negócio de quota funciona mesmo! Caso queira um relatório geral, usamos o comando repquota:

# repquota -av
*** Report for user quotas on device /dev/sda6
Block grace time: 7days; Inode grace time: 7days
Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
———————————————————————-
root      —   71368       0       0              4     0     0
ivani     —      16       0       0              4     0     0
trinity   —      24       0       0              6     0     0
neo       +-   30000   20000   30000  6days       8     0     0
smith     —      16       0       0              4     0     0
nix       —      16       0       0              4     0     0

A opção -av do comando repquota é para exibir o relatório com detalhes do status de quota de todos usuários e todas partições que tiverem quota habilitada.

No próximo post, vamos ver como definir a quota por quantidade de arquivos! Ate la 🙂 !

Depois que fizemos toda a instalação do pacote e habilitamos o suporte a quota na partição, é hora de definir as quotas para os usuários. As quotas podem ser definidas de duas maneiras:
* Por tamanho (blocks)
* Por quantidade (inodes)
Os valores dos limites das quotas são baseados em três parâmetros:
* soft limits – número máximo de blocos de 1kb que um usuário ou grupo pode alocar no disco; ou ainda, número máximo de inodes (arquivos) que um usuário ou grupo pode criar. Usuários ou grupos podem ultrapassar esse limite por um período de tempo.
* hard limits – número máximo de blocos de 1kb que um usuário ou grupo pode alocar no disco; ou ainda, número máximo de inodes (arquivos) que um usuário ou grupo pode criar. Ao contrário de soft limits, esse valor nunca poderá ser ultrapassado.
* grace period –  a tradução desse nome, ‘período de graça’ é engraçada 😛 . Bem, falando sério… o grace period é o tempo que usuário ou grupo pode ultrapassar de seu soft limit. É um tipo de bônus; porém se o usuário ou grupo não apagar os arquivos até o final do grace period, o sistema não alocará mais espaço em disco para esse usuário ou grupo. O padrão do grace period é de 7 dias.
Vamos editar quotas para o usuário neo. O comando para edição de quotas é o edquota. Ele abre um editor de textos (no meu caso, o vim) para editar a quotas:
# edquota neo
A saída do arquivo, quando executamos o comando edquota, é similar a tabela abaixo:
[tabela estrutura do edquota]
Vamos definir para o neo um total de 20mb (soft limit) e um limite máximo de 30mb (hard limit). O arquivo fica assim:
Disk quotas for user neo (uid 1002):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sda6                        24      20000      30000          6        0        0
Lembrando que no arquivo, não alteramos a coluna blocks e nem a coluna inodes, pois elas contém blocos e inodes que já foram utilizados pelo usuário. Após editar os valores, salvar o arquivo e sair. Para consultar as quotas do usuário, usamos o comando quota:
# quota -u neo
Disk quotas for user neo (uid 1002):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sda6      24   20000   30000               6       0       0
Bom, vamos testar as quotas do neo… vamos logar como neo e criar alguns arquivos para testar se a quota esta funcionando mesmo ou não:
# su – neo
$ echo “Eu sou o neo” > identidade.txt; while true; do
> cat identidade.txt >> matrix.txt; cat matrix.txt >> identidade.txt;
> done
O script deve ficar rodando até o usuário lotar o disco:
$ echo “Eu sou o neo” > identidade.txt; while true; do
> cat identidade.txt >> matrix.txt; cat matrix.txt >> identidade.txt;
> done
sda6: warning, user block quota exceeded.
sda6: write failed, user block limit reached.
cat: erro de escrita: Disk quota exceeded
Consultando o tamanho dos arquivos do neo:
$ du -hs *.txt
17M     identidade.txt
13M     matrix.txt
Eita que o neo já não pode mais escrever no disco… vamos consultar novamente a quota dele:
# quota -u neo
Disk quotas for user neo (uid 1002):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sda6   30000*  20000   30000   6days       8       0       0
Isso quer dizer que o neo só pode voltar a escrever novamente no disco quando apagar um arquivo… Esse negócio de quota funciona mesmo! Caso queira um relatório geral, usamos o comando repquota:
# repquota -av
*** Report for user quotas on device /dev/sda6
Block grace time: 7days; Inode grace time: 7days
Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
———————————————————————-
root      —   71368       0       0              4     0     0
ivani     —      16       0       0              4     0     0
trinity   —      24       0       0              6     0     0
neo       +-   30000   20000   30000  6days       8     0     0
smith     —      16       0       0              4     0     0
nix       —      16       0       0              4     0     0
A opção -av do comando repquota é para exibir o relatório com detalhes do status de quota de todos usuários e todas partições que tiverem quota habilitada.
No próximo post, vamos ver como definir a quota por tamanho! Ate la 🙂 !

Configurando quota em disco no Linux – p3

No post anterior, nós habilitamos o suporte a quota no /etc/fstab e criamos os arquivos para gerenciamento das quotas. Agora, vamos fazer a instalação do pacote… mas antes de instalar, primeiro vamos checar se o pacote quota não está instalado:

# dpkg -l | grep -i quota

Caso o comando acima não retorne nada, podemos instalar o pacote:

# apt-get install quota
Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
Pacotes sugeridos:
libnet-ldap-perl
Os NOVOS pacotes a seguir serão instalados:
quota
0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 34 não atualizados.
É preciso baixar 492kB de arquivos.
Depois desta operação, 1327kB adicionais de espaço em disco serão usados.
Obter:1 http://ftp.debian.org stable/main quota 3.16-7 [492kB]
Baixados 492kB em 13s (37,3kB/s)
Pré-configurando pacotes …
Selecionando pacote previamente não selecionado quota.
(Lendo banco de dados … 53343 arquivos e diretórios atualmente instalados).
Desempacotando quota (de …/archives/quota_3.16-7_i386.deb) …
Processando gatilhos para man-db …
Configurando quota (3.16-7) …

Pacote instalado, vamos levantar o módulo referente a versão de quota que desejamos utilizar. Para isso, vamos no diretório do módulos:

# cd /lib/modules/$(uname -r)/kernel/fs/

No comando acima, substituí a versão do kernel por uma variável; o bash é inteligente para interpretar o que tem dentro dos parênteses e me deixar dentro do diretório do kernel que estou usando no momento!

Ahnn, já falei sobre módulos aqui no blog também. Para relembrar sobre eles, leia o post aqui.

Vamos ver o conteúdo desse diretório:

# pwd
/lib/modules/2.6.26-2-686/kernel/fs

# ls
9p    autofs   binfmt_aout.ko  configfs  efs       ext4      gfs2     isofs  jfs         msdos       nfsd   qnx4         romfs  vfat
adfs  autofs4  binfmt_misc.ko  cramfs    exportfs  fat       hfs      jbd    lockd       ncpfs       nls    quota_v1.ko  sysv   xfs
affs  befs     cifs            dlm       ext2      freevxfs  hfsplus  jbd2   mbcache.ko  nfs         ntfs   quota_v2.ko  udf
afs   bfs      coda            ecryptfs  ext3      fuse      hpfs     jffs2  minix       nfs_common  ocfs2  reiserfs     ufs

Se observarem, acima temos todos módulos para todos filesystems (fs) suportados nessa versão de kernel, incluindo as versões de quota.

Já decidimos que iremos usar quota_v2; para habilitar, basta usar o comando modprobe com o nome do módulo sem a extensão .ko:

# modprobe quota_v2

Checando se o módulo foi habilitado:

# lsmod | grep quota
quota_v2                7968  0

Após o módulo estar no ar, temos que remontar a partição onde aplicamos quota. Isso é necessário pois somente editamos o arquivo /etc/fstab; se não remontarmos a partição, a implementação só fica disponível no próximo reboot. Como temos a sorte de usar um sistema que não precisa reiniciar a cada comando executado, vamos remontar a partição…

E aqui fica um lembrete: não remonte a partição houver pessoas utilizando :D. Para remontar a partição:

# mount -o remount,rw /dev/sda6

Não estou bem lembrada, mas acho que caiu uma pergunta sobre remount na LPI também… fica aí a dica para quem estiver estudando, estudar sobre o comando mount e suas opções de montagem 😉 !

Após o comando acima, podemos checar se o suporte a quota está habilitado na partição; vamos usar de novo o comando mount:

# mount
/dev/sda6 on /home type ext3 (rw,usrquota,grpquota)

Pela saída do comando mount, o suporte foi habilitado com sucesso. Mas para ter certeza, também podemos usar o comando quotacheck, que é um utilitário para checar, criar e reparar arquivos de quota:

# quotacheck -acugv
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sda6 [/home] done
quotacheck: Checked 8 directories and 23 files

Falando sobre as opções do quotacheck e a saída do comando acima:

a => checar todos sistemas de arquivos que tem quota habilitada.
c => criar novos arquivos de gerenciamento de quota.
u => checa os arquivos dos usuários.
g => checa os arquivos dos grupos.
v => modo falante :D; isto é… verbose para mostrar mais detalhes. Os detalhes indicam qual o diretório que foi aplicado quota e também a quantidade de arquivos e diretórios existentes na partição.

Quando executei o comando quotacheck, apareceu o seguinte warning (aviso):

quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.

Isso não chega ser um erro, a quota que você definir para os usuários vai funcionar normalmente. “Mas”, é um aviso que não deve ser ignorado, pois está dizendo que o kernel provavelmente tem suporte a quota em journal, mas isso não está sendo usado e que é bacana considerar mudar para quota journal para evitar rodar o quotacheck depois que o sistema desligou inadequadamente.

Mas o que ser isso, Nix!!!! Vamos la decifrar essa mensagem. Na verdade, estamos usando o filesystem ext3 que tem suporte a journaling. O journaling, nada mais é do que uma técnica implementada no filesystem onde, caso haja queda de energia, a checagem de erros na partição é feita mais rapidamente.

Sendo assim, apenas precisamos habilitar o journaling para as quotas também… e não é difícil!  Para isso, vamos editar o fstab para incluir as opções usrjquota (para usuário) e grpjquota (para grupo). Diferença para as opções que já estão no arquivo:

✔ Vamos colocar um j, para indicar journaling, e também falar os nomes dos arquivos aquota.user e aquota.group

✔ Também precisamos especificar que o formato de quota utilizado é quota_v2, com a opção jqfmt (journaling quota format) usando o valor vfsv0.

Atualmente nosso /etc/fstab está assim:

# vim /etc/fstab
/dev/sda6       /home           ext3    defaults,usrquota,grpquota        0       2

Vamos fazer a alteração e a linha acima deve ficar assim:

/dev/sda6 /home ext3 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0 2

Checando se realmente o que fizemos vai funcionar… vamos executar de novo o quotacheck:

# quotacheck -acugv
quotacheck: Scanning /dev/sda6 [/home] done
quotacheck: Checked 8 directories and 23 files

Opa! Sem warning 😀 ! Vamos finalmente definir quota para os usuários no próximo post! Até lá! 🙂

Configurando quota em disco no Linux – p2

Para entender melhor a questão de quotas, vamos ver as figuras abaixo. Na primeira, temos o hd particionado, mas sem o sistema de quotas. Separamos tudo, até a partição /home, pois sabemos que quanto maior for o espaço, mais os usuário vão querer gravar coisas:

HD particionado

Até aqui, tudo como manda o figurino… Mas o nosso HD está apenas particionado, então vejam como está o /home:

/home sem quotaBem… na figura acima, o home esta uma folia so. Usuários podem gravar eternamente ate o espaço da partição acabar. Mas isso não e bom… imagine se a Familia grava um arquivo que ocupe a partição inteira? Imediatamente a Nix, a Vana e o Nene vão ficar sem espaço para escrever nada…

Entra aí, então as quotas, para organizar as coisas e fazer com que cada usuário grave até o limite permitido. O desenho que ilustra é basicamente o mesmo, o que muda agora, é que cada usuário tem sua ‘caixinha’, isto é, tem o seu espaço em disco reservado para gravar… e não vai impedir que outro usuário grave também, pois o limite dele é a quota que vamos implementar. Vejam:

/home com quota

Colocando a mão na massa

Definimos a partição, vamos editar o arquivo /etc/fstab que contém as tabelas de partições e falar que a partir de agora ele terá quota!

Eu ja falei sobre o fstab aqui no blog, é uma boa idéia dar uma lida no post pra entender como ele é organizado antes de editar ele 😉 !

Só que antes de editar o arquivo, vamos ter aquele cuidado em fazer uma cópia de segurança… eu já tenho o meu diretório de backup que fica no meu /root/backup:

# cd /root/backup/

# cp /etc/fstab fstab.original

# ls -l fstab.original
-rw-r–r– 1 root root 521 Out 23 19:14 fstab.original

Cópia feita, vamos editar o arquivo:

# vim /etc/fstab

A linha do /home atualmente está assim:

/dev/sda6       /home           ext3    defaults        0       2

Acima, a opção de montagem do /home e a defaults que engloba as opções rw, suid, dev, exec, auto, nouser, e async. Vamos acrescentar duas opções, usrquota (para usuário) e grpquota (para grupo):

/dev/sda6  /home  ext3    defaults,usrquota,grpquota        0  2

E é vírgula ( , ) depois da opção defaults e não pode ter espaços entre as opções 😉 .

Depois de habilitarmos o suporte, vamos criar os arquivos de gerenciamento de quota. Como são arquivos que o próprio quota irá gerenciar, podemos criá-los usando o comando touch.

Os arquivos devem ser criados no diretório da partição que será aplicada quota; no nosso caso, o /home:

# cd /home/

# touch aquota.user aquota.group

Após criar os arquivos, mudamos a permissão para leitura somente para o root:

# chmod 600 aquota.*

# ls -l aquota.*
-rw——- 1 root root 0 Out 24 04:42 aquota.group
-rw——- 1 root root 0 Out 24 04:42 aquota.user

Suporte habilitado, arquivos criados… no próximo post, vou falar sobre a instalação do pacote quota e a configuração.

Até lá 🙂 !

Configurando quota em disco no Linux – p1

Nos próximos posts vou falar sobre quotas em disco. A vantagem das quotas está no controle do espaço em disco. Se você possui um HD não particionado, não tem esse controle… os usuários vão gravando, gravando até que um dia o espaço acaba. Tudo bem, hoje em dia o tamanho dos HDs aumentou e o preço caiu bastante; mas ainda assim é importante manter o controle quanto ao uso do espaço em disco.

Antes de colocar a mão na massa, achei legal fazer um checklist do que vamos fazer para implementar quotas, depois abaixo vou colocando mais detalhes:

1) Saber qual a versão do kernel para checar se este tem suporte a quota e aplicar a versão correta da mesma;

2) Saber o filesystem utilizado e se este possui suporte nativo a quota ou precisa aplicar algum patch, ou depende da instalação de algum pacote para funcionar;

3) Definir qual partição será aplicada quota;

4) Editar o arquivo /etc/fstab para indicar que a partição irá usar quota;

5) Criar os arquivos de gerenciamento de quota;

6) Instalar o pacote quota;

7) Habilitar módulos se necessário;

8) Remontar a partição onde foi aplicado quota;

9) Definir as quotas para os usuários;

10) Testar 😀 .

Checklist na mão, é importante dizer que atualmente, existem duas versões de quotas:

✔ quota_v1 (vfsold) – utilizada somente no  kernel da série 2.4

✔ quota_v2 (vfsv0) – utilizada no kernel da série 2.6

Aliás, o kernel 2.6 traz as duas versões (quota_v1 e quota_v2); o administrador escolhe qual versão deseja utilizar e habilita o módulo no kernel.

Além da questão do kernel, é importante falar que a principal diferença entre as versões de quota, são os arquivos criados para gerenciar a quota na partição.

Se você optar por usar quota_v1, os arquivos de gerenciamento são o quota.user e quota.group; se optar por usar quota_v2, os arquivos são aquota.user e aquota.group.

Uma vantagem de se usar quota_v2 é que esta versão checa os arquivos de dados de quota corrompidos e trabalha mais rápido mesmo em grandes partições.

Na LPI costuma cair perguntas sobre quotas e com certeza esses arquivos são uma pegadinha… é bom ficar atento aos nomes e às versões de quota para não errar na prova 😉 !

O meu kernel é 2.6, então vou trabalhar com quota_v2; lembrando que o comando para checar a versão do kernel é o uname:

# uname  -r
2.6.26-2-686

Também é bom saber é que o sistema de quotas é uma funcionalidade que deve ser suportada pelo filesystem e pelo kernel; ou seja… para que você possa aplicar quota em uma partição, tanto o sistema de arquivos dela (ext3, reiserfs, xfs, etc) quanto o kernel devem oferecer esse suporte.

Então, antes de sair limitando o quanto um usuário pode escrever em disco, é boa idéia verificar o filesystem da partição. Isso pode ser verificado com o comando mount:

# mount
/dev/sda6 on /home type ext3 (rw)

No meu caso, o filesystem é o ext3… ele possui suporte a quotas – humm… eu não achei o site oficial do ext3 listando todas as features incluindo quotas… mas tem uma apresentação do Dr. Stephen Tweedie que fala sobre o suporte a quotas no ext3 – então significa que posso aplicar quotas ai!

E para saber se o kernel possui suporte a quota:

# grep CONFIG_QUOTA /boot/config-2.6.26-2-686
CONFIG_QUOTA=y

Lembrando que se a opção não estiver habilitada, a solução é recompilar o kernel para oferecer suporte a quota!

Um outro filesystem que também permite aplicar quotas é o ReiserFS; o serviço não vem como padrão, para ter o suporte é necessário aplicar um patch. Depois que aplicar o patch, os procedimentos para instalação e configuração de quotas é o mesmo que está sendo descrito para o ext3.

Vamos definir também em qual partição será aplicado a quota. Com um HD particionado, estamos limitando o usuário escrever somente até o tamanho da partição; configurando quotas, garantimos também que o espaço não seja ocupado por apenas um usuário.

Podemos configurar quota para qualquer partição, mas como estamos falando de usuários, o ideal é que a quota seja aplicado na partição /home.

No próximo post, continuo a falar sobre quota em um HD particionado.

Até lá 😉 !