Quota mini-HOWTO
  Albert M.C. Tam bertie@scn.org, Tradução: Sellaro Tam
  sellaro@deathsdoor.com, Revisao: Alessandro F. Martins
  afm@nitnet.com.br
  v0.0, 8 August 1997

  Preâmbulo: Este documento é copylefted de Albert M.C. Tam
  (bertie@scn.org).  A permissão para uso, cópia e distribuição deste
  documento para propósitos não-comerciais é doravante garantida, desde
  que o nome do autor / editor e tradutor, além desta nota figurem em
  todas as cópias e/ou documentos originais; e que este documento não
  seja modificado. Este documento é distribuído com o intuito de ser
  útil, mas SEM QUALQUER GARANTIA, seja expressa ou implícita. Embora
  todo esforço tenha sido empregado para assegurar a precisão das
  informações aqui contidas, o autor / editor / tradutor não assume
  QUALQUER RESPONSABILIDADE por erros ou prejuízos resultantes da
  utilização das informações aqui contidas.  Este documento descreve
  como habilitar a quota do sistema de arquivos de um computador Linux,
  atribuindo uma quota para usuários e grupos, bem como o uso de
  comandos diversos de quota. Este documento destina-se a usuários
  executando kernel versão 2.x (recentemente testado em um RedHat 4.1
  executando kernel 2.0.27). Usuários executando kernels mais antigas
  devem atualizar seus sistemas para uma versão mais nova do kernel de
  maneira a tirar melhor proveito da quota.  Sinta-se à vontade de
  enviar criticas e comentários para bertie@scn.org caso você  encontre
  um erro, ou considere que alguma informação não esteja presente.

  11..  OO qquuee éé  QQuuoottaa??


  O sistema de quota permite que você especifique limites em dois
  aspectos relacionados ao armazenamento em disco: o número de inodes
  que um usuário ou grupo de usuários pode possuir; e o número de blocos
  do disco que podem ser disponibilizados para um usuário ou grupo de
  usuários.

  A idéia por trás da quota é que os usuários são forçados a
  permanecerem sob seu limite de consumo de disco, tirando deles a
  habilidade de consumir de forma ilimitada o espaço em disco do
  sistema. A quota é gerenciada seguindo uma base por usuário e por
  sistema de arquivo. Se existe mais de um sistema de arquivo onde um
  usuário pode criar arquivo, então a quota tem de ser estabelecida para
  cada sistema de arquivo separadamente.

  22..  SSttaattuuss AAttuuaall ddaa QQuuoottaa eemm LLiinnuuxx


  O suporte à quota foi integrado ao kernel desde a versão 1.3.8x.
  Atualmente, o sistema de quota está presente nas versões 2.0 do kernel
  Linux. Se o seu sistema não suporta quota, eu sinceramente recomendo
  uma atualização.

  O sistema de quota funciona, atualmente, apenas para sistema de
  arquivos do tipo ext2.

  33..  RReeqquuiissiittoo ppaarraa UUttiilliizzaaççããoo ddee QQuuoottaa nnoo LLiinnuuxx


  33..11..  KKeerrnneell


  O código fonte para o kernel 2.x está disponível em




  ______________________________________________________________________
  http://sunsite.unc.edu/pub/Linux/kernel/v2.0
  ______________________________________________________________________



  33..22..  SSooffttwwaarree ppaarraa QQuuoottaa


  Dependendo da distribuição Linux que você possua, você pode ou não ter
  o software do sistema de quota instalado em seu sistema. Caso você não
  possua o software, você pode obtê-lo através do seguinte endereço:

  ______________________________________________________________________
  ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz.
  ______________________________________________________________________



  44..  CCoonnffiigguurraaççããoo ddoo SSiisstteemmaa ddee QQuuoottaa nnoo LLiinnuuxx -- PPaarrttee II:: AA
  CCoonnffiigguurraaççããoo


  44..11..  RReeccoonnffiigguurree sseeuu kkeerrnneell


  Reconfigure seu kernel e adicione o suporte à quota digitando y em:

  ______________________________________________________________________
  Quota support (CONFIG_QUOTA) [n] y
  ______________________________________________________________________



  44..22..  CCoommppiillee ee iinnssttaallee oo ssooffttwwaarreess ddee qquuoottaa


  O software do sistema de quota está disponível em

  ______________________________________________________________________
  ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
  ______________________________________________________________________



  44..33..  MMooddiiffiiqquuee sseeuu ssccrriipptt iinniitt ppaarraa vveerriiffiiccaarr aa qquuoottaa ee hhaabbiilliittáá--llaa
  eemm tteemmppoo ddee iinniicciiaalliizzaaççããoo


  Segue um exemplo:

  ______________________________________________________________________
  # Verifica a  quota e a habilita.
  if [ -x /usr/sbin/quotacheck ]
          then
                 echo "Checando quotas. Isto pode levar algum tempo."
                 /usr/sbin/quotacheck -avug
                 echo " Concluído."
          fi
           if [ -x /usr/sbin/quotaon ]
          then
                  echo "Habilitando sistema de quota."
                  /usr/sbin/quotaon -avug
          fi
  ______________________________________________________________________

  A regra de ouro é sempre habilitar a quota depois que o sus sistema de
  arquivo especificado em /etc/fstab tenha sido montado, de outra forma
  o sistema de quota não funcionará. Eu recomendo habilitar o sistema de
  quota no fim do script init ou, se você preferir, imediatamente depois
  dos sistemas de arquivos terem sido montados no script init.

  44..44..  MMooddiiffiiqquuee oo aarrqquuiivvoo //eettcc//ffssttaabb


  As partições que você ainda não habilitou o sistema de quota devem
  parecer com isto:

  ______________________________________________________________________
  /dev/hda1       /       ext2    defaults        1       1
  /dev/hda2       /usr    ext2    defaults        1       1
  ______________________________________________________________________



  Para habilitar o suporte ao sistema de quota em um sistema de arquivo,
  adicione "usrquota" ao quarto campo contendo a palavra "defaults" (man
  fstab para detalhes).

  ______________________________________________________________________
  /dev/hda1       /       ext2    defaults        1       1
  /dev/hda2       /usr    ext2    defaults,usrquota       1       1
  ______________________________________________________________________



  Substitua "usrquota" por "grpquota", caso você necessite de suporte a
  quota por grupo em um sistema de arquivo.

  ______________________________________________________________________
  /dev/hda1       /       ext2    defaults        1       1
  /dev/hda2       /usr    ext2    defaults,grpquota       1       1
  ______________________________________________________________________



  Você precise de ambos, quota de usuário e de grupo em um sistema de
  arquivo?

  ______________________________________________________________________
  /dev/hda1       /       ext2    defaults        1       1
  /dev/hda2       /usr    ext2    defaults,usrquota,grpquota       1   1
  ______________________________________________________________________



  44..55..  CCrriiee oo aarrqquuiivvoo ""qquuoottaa..uusseerr"" ee ""qquuoottaa..ggrroouupp""


  Ambos os arquivos de quota, quota.user e quota.group, devem pertencer
  ao root, e terem permissão de leitura-escrita para root e nenhum para
  outros usuários.

  Acesse o sistema como root. Vá para o diretório raiz da partição que
  você deseja habilitar o sistema de quota e crie o arquivo quota.user e
  quota.group com os seguintes comandos:






  ______________________________________________________________________
  touch /partition/quota.user
  touch /partition/quota.group
  chmod 600 /partition/quota.user
  chmod 600 /partition/quota.group
  ______________________________________________________________________



  44..66..  RReeiinniicciiee oo ssiisstteemmaa


  Agora, reinicie o sistema para as mudanças terem efeitos.

  Note, também, que caso você queira habilitar quota posteriormente
  apenas os passos 4, 5, e 6 são necessários.

  55..  CCoonnffiigguurraaççããoo ddoo SSiisstteemmaa ddee QQuuoottaa nnoo LLiinnuuxx -- PPaarrttee IIII:: AAttrriibbuuiinnddoo
  QQuuoottaa ppaarraa UUssuuáárriiooss ee GGrruuppooss


  Esta operação é executada com o comando edquota (man edquota para
  detalhes).

  Eu executaria o comando quotacheck com os parâmetros -avug para obter
  os dados de utilização do sistema de arquivo de forma mais atualizada
  antes de editar as quotas. Isto é, entretanto, apenas um hábito
  pessoal não obrigatório para este passo.

  55..11..  AAttrriibbuuiinnddoo qquuoottaa ppaarraa uumm uussuuáárriioo eessppeeccííffiiccoo


  Eis um exemplo. Tenho um usuário em meu sistema com login id bob.  O
  comando "edquota -u bob" me conduz ao vi (ou outro editor especificado
  em minha variável de ambiente $EDITOR)  para editar a quota para o
  usuário bob em cada partição que tem o sistema de quota habilitado:

  ______________________________________________________________________
  Quotas for user bob:
  /dev/hda2: blocks in use: 2594, limits (soft = 5000, hard = 6500)
           inodes in use: 356, limits (soft = 1000, hard = 1500)
  ______________________________________________________________________



  "blocks in use" é o número de blocos (em quilobytes) que um usuário
  consumiu em uma partição.

  "inodes in use" é o número total de arquivos que um usuário possui em
  uma partição.

  55..22..  AAttrriibbuuiinnddoo qquuoottaa ppaarraa uumm ggrruuppoo eemm ppaarrttiiccuullaarr


  Agora, suponha que eu tenha um grupo chamado jogos em meu sistema.
  "edquota -g jogos" irá me conduzir ao editor vi novamente para editar
  a quota para o grupo jogos:

  ______________________________________________________________________
          Quotas for group jogos:
          /dev/hda4: blocks in use: 5799, limits (soft = 8000, hard = 10000)
                  inodes in use: 1454, limits (soft = 3000, hard = 4000)
  ______________________________________________________________________



  55..33..  AAttrriibbuuiinnddoo aa mmeessmmaa qquuoottaa ppaarraa uumm ccoonnjjuunnttoo ddee uussuuáárriiooss


  Para atribuir quotas rapidamente, digamos, para 100 usuários em meu
  sistema com o mesmo valor atribuído ao usuário bob, teríamos que
  editar, primeiramente, a quota do usuário bob, e então executar o
  seguinte comando:

  ______________________________________________________________________
  edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`
  ______________________________________________________________________



  supondo que você esteja usando o shell csh, e que você atribuiu UID's
  a partir 500 a seus usuários.

  Além de edquota, existem 3 termos com que você deve se familiarizar:
  Soft Limit, Hard Limit, e Grace Period.

  55..44..  SSoofftt LLiimmiitt


  O _Soft limit_ indica a quantidade máxima de utilização do disco que
  um usuário possui em uma partição. Quando combinado com o grace
  period, ele funciona como um limite, estabelecendo uma  fronteira a um
  usuário cuja a quota está prestes a ser atingida, enviando avisos
  constantes a ele.

  55..55..  HHaarrdd LLiimmiitt


  O hard limit funciona apenas quando grace period está configurado. Ele
  especifica o limite absoluto de utilização de disco que não pode ser
  ultrapassado por um usuário.

  55..66..  GGrraaccee PPeerriioodd


  Executado com o comando "edquota -t", o grace period é um limite de
  tempo antes que o soft limit seja imposto em um sistema de arquivo com
  quota habilitada. Unidades de tempo como segundos (sec), minutos
  (min), horas(hour), dias (day), semanas(week), e meses (month) podem
  ser utilizados.  Isto é o que você irá ver com o comando "edquota -t":

  ______________________________________________________________________
  Time units may be: days, hours, minutes, or seconds
  Grace period before enforcing soft limits for users:
  /dev/hda2: block grace period: 0 days, file grace period: 0 days
  ______________________________________________________________________



  Mude o trecho "0 days" para um de qualquer outra duração que você
  julgue razoável. Pessoalmente, escolheria 7 dias (ou 1 semana).

  66..  CCoommaannddooss ddee QQuuoottaa DDiivveerrssooss


  66..11..  QQuuoottaacchheecckk


  O comando quotacheck é usado para verificar a utilização de disco em
  um sistema de arquivos, além de atualizar os arquivos de quota
  "quota.user". Eu recomendo a execução do comando quotacheck na
  inicialização do sistema ou via cronjob periodicamente (digamos, toda
  semana?).

  66..22..  RReeppqquuoottaa


  O comando repquota produz informações sintetizadas para um sistema de
  arquivos. Eis um exemplo de saída do comando repquota:

  ______________________________________________________________________
  # repquota -a
                                  Block limits               File limits
          User            used    soft    hard  grace    used  soft  hard  grace
          root      --  175419       0       0          14679     0     0
          bin       --   18000       0       0            735     0     0
          uucp      --     729       0       0             23     0     0
          man       --      57       0       0             10     0     0
          user1     --   13046   15360   19200            806  1500  2250
          user2     --    2838    5120    6400            377  1000  1500
  ______________________________________________________________________



  66..33..  QQuuoottaaoonn ee QQuuoottaaooffff


  O comando Quotaon é utilizado para iniciar a contabilização de quota;
  quotaoff para finalizá-la. Atualmente, ambos são similares. Eles são
  executados na inicialização do sistema e no seu processo de
  finalização (shutdown).