Sistemas de arquivos - Conceitos básicos

Este artigo explica os seguintes conceitos básicos: sistemas de arquivos, área de troca (SWAP), diretório temporário (/tmp), sistemas de arquivos virtuais (/proc, /sys, /dev) e os sistemas de arquivos temporários em RAM (/run). Baseado na estrutura do Debian Jessie (Sid).

[ Hits: 28.704 ]

Por: Perfil removido em 19/05/2014


O diretório temporário ou /tmp



Esse diretório existe, para que programas em execução possam criar arquivos temporários. Esses arquivos são criados como uma área de trânsito para dados que estão indo de um lado para outro do sistema. Caso esses programas não pudessem criar arquivos temporários em disco, eles fariam isso na memória RAM.

A necessidade de área para arquivos temporários, é muito maior que o tamanho da RAM. Assim, entenda que não faz sentido criar o diretório temporário na RAM. Por exemplo, enquanto copia um DVD, um programa pode criar um buffer (memória temporária) dos dados copiados para aumentar a velocidade da cópia.

O tamanho de um DVD é de até 8 GB. Não há como armazenar isso em RAM, então, esse cache ou buffer temporário é feito em /tmp. Não há degradação do sistema, apesar da cópia ser feita em disco, pois um cache não precisa ser tão rápido, uma vez que o dado está em trânsito de um dispositivo para outro.

A ideia não é acelerar o processo, mas torná-lo constante e seguro como uma caixa de água que retém e libera água na medida certa. A criação de uma tabela temporária por um banco de dados, é outro exemplo de criação de arquivos temporários. Enquanto reorganiza os dados de uma tabela grande, são criados vários arquivos temporários. Isso é feito como buffer ou cache de modo temporário. Quando a operação termina, os dados temporários devem ser removidos.

O diretório temporário é especial, pois TODOS os usuários possuem permissão de gravação nele. Essa característica é ativada através da permissão especial de bit sticky (drwxrwxrwt) que em octal é lida como 1777.

Observe que, no campo referente a OUTROS, a permissão de execução é substituída por uma letra t minúscula, isso indica o bit sticky ativado. O bit sticky para arquivos, está obsoleto e não é utilizado nos sistemas GNU/Linux.

# ls -ld /tmp
drwxrwxrwt 2  root   root  4096   Mai 10 21:17  /tmp

O bit sticky para diretórios, indica que TODOS podem criar arquivos neste diretório, porém, apenas o dono do arquivo pode modificar ou remover esse arquivo. Em função disso, o diretório /tmp em um sistema de produção, DEVE ser uma partição.

Se você ainda não percebeu a gravidade da questão de segurança aqui envolvida, imagine um usuário que resolva criar infinitos arquivos em /tmp. Ele pode fazer isso sem qualquer problema de permissão, e irá fazê-lo até lotar o disco rígido ou ocupar todos os inodes (o que acontecer primeiro ou for mais fácil), travando todo o sistema por falta de inodes e gerando uma série de negação de serviços, lentidões e travamentos.

Se /tmp for uma partição, seu uso pode ser controlado por cota (quota), pois a cota somente pode ser implantada em partições e nunca na raiz do sistema.

O diretório /tmp é uma área de armazenamento provisório, os dados são salvos temporariamente e estão em movimento, isso significa que os programas que colocam dados em /tmp estão SEMPRE em execução.

Quando a execução termina, é obrigatório que o programa que criou o arquivo temporário faça a sua remoção antes de finalizar. Muitas vezes, isso não acontece e deixa algum lixo para trás. Esse lixo é sempre removido quando o sistema é reiniciado para garantir uma área de troca sempre limpa. Esse é um comportamento padrão em vários sistemas GNU/Linux.

É muito comum um administrador novato, guardar algo em /tmp e após um reinício (boot), perceber que perdeu TUDO que guardou em /tmp. Cuidado com isso! Essa não é uma área para cópias de segurança.

Uma vez que TODOS os usuários podem gravar em /tmp, é muito difícil calcular o tamanho ideal dessa partição. Em média, o valor de 5 GB por usuário é razoável. Mas, dependo do tipo de utilização de cada usuário, esse valor pode subir muito.

Outra questão importante para o /tmp, são as opções de montagem. É recomendado desativar a execução de binários (noexec) e proibir a criação de arquivos especiais como pipes, sockets ou devices (nodev) nessa partição. Isso aumenta a segurança do sistema e pode ser definido nas opções de montagem em /etc/fstab.

Existe outro diretório temporário no sistema que poucas pessoas falam dele. O diretório presente em /var/tmp. Esse diretório possui as mesmas características de /tmp. Se você pretende fechar todas as brechas de segurança, deve fazer /var/tmp em uma partição e aplicar cota. Normalmente, como /var já é uma partição, neste caso, basta aplicar uma cota em /var para evitar problemas.

Página anterior     Próxima página

Páginas do artigo
   1. Sistema de arquivos
   2. Área de troca ou SWAP
   3. O diretório temporário ou /tmp
   4. Sistemas de arquivos virtuais
   5. Sistemas de arquivos temporários em memória RAM
Outros artigos deste autor

Uma "fábula" sobre acessar e mapear unidades de rede do Windows no Linux

SparkleShare - Uma alternativa livre do Dropbox

Instalando pacotes no Ubuntu e distros Debian-like

Arquivos de configuração de rede - Parte I - /etc/hosts

Porque abandonar o Slackware e usar o Ubuntu

Leitura recomendada

GlusterFS - Um Sistema de Arquivos Distribuídos

Arquivos duplicados? fdupes neles!

PersonalBackup - Ferramenta de backup via web

Recuperando arquivos em um Windows corrompido com Linux

Raid 1 com mdadm

  
Comentários
[1] Comentário enviado por JFurio em 19/05/2014 - 09:05h

Parabéns pelo artigo, ficou muito bom, esclareceu muito com relação ao SWAP!

[2] Comentário enviado por jwolff em 19/05/2014 - 17:17h

Favoritado!

[3] Comentário enviado por izaias em 19/05/2014 - 17:26h

Sempre aprendo muito com esse cara!

Houve um tempo que tinha desistido da SWAP.

Nessa nova instalação fiz tudo certo, agora tenho tenho área de troca do tamanho de minha RAM, para todo e qualquer sistema que precisar.


Ótimo e muito útil esse artigo!

[4] Comentário enviado por mcnd2 em 20/05/2014 - 19:42h

10!...

Sempre é bom aprender de como o sistema realmente funciona com seus arquivos de configurações.

Favoritado.

[5] Comentário enviado por albfneto em 21/05/2014 - 07:18h

Muito bom esse Artigo.
Artigos de Teoria Linux, são sempre interessantes e benvindos.
Favoritado e 10.

[6] Comentário enviado por saint-zeppelin em 28/08/2014 - 11:32h

Cara, desculpa o nível da pergunta hahaha mas quando você diz "sistema de produção" a qual tipo de sistema, exatamente, você está se referindo?

No mais parabéns pelo artigo! MUITO esclarecedor (:

[7] Comentário enviado por alysonpires em 31/08/2014 - 19:35h

Cara, o material é tão bom que não dá pra considerar como "conceitos BÁSICOS". Isso é mais que básico! Material muito bom! Parabéns :D

[8] Comentário enviado por darkoverde em 21/11/2014 - 12:00h

Excelente artigo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts