Aula #5 - A estrutura da árvore do Sistema de Arquivos Linux


Existem vários tipos de arquivos presentes em um sistema Linux.  Eles diferem em propósito, tamanho, dono, nível de compartilhamento e volatilidade.  O resultado é uma organização coerente de toda a árvore do sistema de arquivos que é padrão(na medida do possível) entre as distribuições Linux.



 O Linux, assim como todos os sistemas operacionais baseados no UNIX, consiste em uma grande árvore de arquivos. Na verdade, é representado como uma árvore invertida tendo o diretório raiz /, no topo da árvore.

Dentro da árvore existe um grande sistema de arquivos lógico, que pode unir vários sistemas de arquivos diferentes, que são montadas em pontos específicos da árvore, e que aparecem como subdiretórios. Estes sistemas de arquivos distintos estão geralmente em partições diferentes, ou até mesmo na rede.

Independente de como as partes são unidas, os aplicativos e os usuários tem uma visão de um grande sistema de arquivos; na prática não faz diferença onde os dados estão de fato.

No passado, os sistemas operacionais baseados no UNIX organizavam esta grande árvore de diversas formas; mesmo entre as distribuições Linux haviam muitas diferenças. Isso fez com que tanto a criação de aplicativos quanto a manutenção do sistema fossem difíceis e muitas vezes frustrantes.

Como consequência, o ecossistema Linux tem trabalhado arduamente para estabelecer procedimentos padronizados para minimizar essa dor.

 Ao falar sobre como os arquivos e os dados são organizados em uma grande árvore de diretórios, é importante aprender os nomes dos tipos de informação que são lidos e escritos. Existem dois tipos básicos:



  • Compartilhável vs. não compartilhável
Dados compartilháveis são aqueles que podem ser compartilhados entre diferentes hosts. 

Dados não-compartilháveis são os que   devem ser específicos para um determinado host. 

Por exemplo, os diretórios home dos usuários podem ser compartilhados(em uma rede corporativa o home pode estar em um computador remoto), enquanto os arquivos associados a dispositivo de hardware não podem.
    
  •     Variável vs. estático
    Dados estáticos incluem binários, bibliotecas, documentação, e qualquer coisa que não muda, sem intervenção do administrador do sistema. 
Os dados variáveis ​​são qualquer coisa que muda, mesmo sem a ajuda de um administrador do sistema.


Muitas vezes, essas distinções lógicas definem onde os tipos diferentes de informações serão armazenadas, e até podem sugerir partições exclusivas.




FHS


 O Filesystem Hierarchy Standard ou FHS originalmente administrado pelo Free Standards Group e agora pela Linux Foundation, especifica os principais diretórios que precisam estar presentes, e descreve suas finalidades. Ele pode ser obtido a partir do endereço http://www.pathname.com/fhs/ .



Ao especificar um layout padrão o FHS simplifica a tarefa de administrar arquivo locais. Enquanto a maioria das distribuições Linux respeita o FHS, provavelmente nenhuma deles segue exatamente, e a última versão oficial é antiga e não leva em consideração alguns avanços.



Distribuições gostam de experimentar e, eventualmente, algumas das experiências são aceitas.


Distribuições Linux gastam muito tempo para garantir que o layout do sistema de arquivos é coerente e evolui ao longo do tempo.

 É possível encontrar diretórios de distribuições específicas no diretório raiz. Entre eles /misc que tem uso geral, normalmente dados, e o / tftpboot que é usado para o processo de boot através da rede usando TFTP. Arquivos encontrados neste diretório, são provavelmente relacionados com a inicialização da estações de trabalho sem disco. Observe que ter outros diretórios não não viola a FHS, no entanto ter diretórios com finalidades semelhantes ao que o padrão determina é uma violação.


Abaixo a lista dos principais diretórios encontrados sob o /:



       Diretório    Está no FHS?    Propósito
  • /                  Sim                    Diretório principal de toda a hierarquia de diretórios.
  • /bin             Sim                    Executáveis essenciais que devem estar disponíveis em modo mono-usuário.
  • /boot           Sim                    Arquivos necessários para inciar o sistema, como o kernel, a imagem initrd ou initramfs, arquivos de configuração do boot e os programas do boot loader.
  • /dev           Sim                    Nós de Dispositivo (Device Nodes) usados para interagir com dispositivos de hardware e software.
  • /etc             Sim                    Arquivos de configuração globais, que afetam todo o sistema.
  • /home         Sim                    Pastas home incluindo configurações pessoais, arquivos, etc.
  • /lib               Sim                    Bibliotecas necessárias para executar binários em /bin e /sbin.
  • /lib64           Não                    Bibliotecas de 64-bit necessárias para binários executáveis das pastas /bin e /sbin, para sistemas que são capazes de rodar programas tanto de 32-bits quanto de 64-bits.
  • /media         Sim                    Ponto de montagem padrão para mídias removíveis como CDs, DVDs, Pendrives USB, etc.
  • /mnt            Sim                    Sistemas de Arquivos Montados Temporariamente.
  • /opt             Sim                    Pacotes de aplicativos opcionais.
  • /proc           Sim                    Sistema de arquivos pseudo-virtual provendo informações sobre o sistema e processos em execução. Pode ser usado para alterar parâmetros do sistema.
  • /sys              Não                    Sistema de arquivos pseudo-virtual provendo informações sobre o sistema e processos em execução. Pode ser usado para alterar parâmetros do sistema. Semelhante a árvore de dispositivos (device tree) e é parte do Sistema Unificado de Dispositivos (Unified Device Model).
  • /root             Sim                    Pasta home do usuário root.
  • /sbin             Sim                     Binários essenciais do sistema.
  • /srv               Sim                    Dados específicos do local servido pelo sistema. Raramente utilizado.
  • /tmp              Sim                    Arquivos temporários; Em várias distribuições o conteúdo é perdido entre reinicializações e é na verdade um ramdisk em memória.
  • /usr               Sim                    Aplicativos multiusuário, utilitários e dados; teoricamente é uma pasta somente leitura.
  • /var               Sim                     Dados que variam durante a execução do sistema.






Diretório raiz ( / ) e Sistemas de arquivos


Embora todo o sistema de arquivos possa ser visto como uma grande árvore, como já mencionado, podem haver várias partições e sistemas de arquivos unidos.

A partição e o sistema de arquivos que armazenam o diretório raiz é especial e pode ficar em uma partição dedicada, contendo diretórios como /home, /var e /opt para serem usados como pontos de montagem.

A partição raiz(root) deve conter todos os arquivos essenciais necessários para inicializar o sistema e para depois montar os outros sistemas de arquivos. Desta forma, ela precisa de utilitários, arquivos de configuração, informações do boot loader, e outros dados de inicialização essenciais. Ela deve ser adequada para:


  •     Inicializar o sistema.
  •     Restaurar o sistema a partir de backups em mídias externa, como fitas, pendrives, e NAS/Storage.
  •     Recuperar e/ou reparar o sistema; um administrador de sistema precisa ter as ferramentas para diagnosticar e reconstruir um sistema danificado.


De acordo com o FHS, nenhum aplicativo ou pacote deve criar novos diretórios na raiz.



/bin


 O diretório /bin é muito importante e ele:

    Contém programas executáveis ​​e scripts necessários para administradores de sistema e usuários sem privilégios, que são necessários quando há sistemas de arquivos que ainda não foram montados, por exemplo, quando iniciando no modo mono-usuário ou no modo recovery.

    Também pode conter arquivos executáveis ​​que são usados ​​indiretamente por scripts.

    Pode não conter subdiretórios.
   
Utilitários binários que não são considerados essenciais para ter lugar no /bin são colocados no  /usr/bin. Programas que o usuário root nunca utiliza são considerados não essenciais.


Nota: Algumas distribuições recentes estão abandonando a estratégia de separar o /bin e o /usr/bin (assim como o /sbin e o /usr/sbin) e só tem um diretório com links simbólicos, preservando, assim, a visão com duas pastas. Eles acreditam que o conceito consagrado pelo tempo de colocar o /usr em uma partição separada se tornou obsoleto.
   
   
   
Programas obrigatórios que devem existir no /bin incluem:

cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, false, hostname, kill, ln, login, ls, mkdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, sh, stty, su, sync, true, umount, e uname.

e opcionalmente podem estar lá:

csh, ed, tar, cpio, gunzip, zcat, netstat, and ping.




/boot


Arquivos essenciais para iniciar o sistema devem estar no diretório /boot. Os dois arquivos que são absolutamente essenciais são:

    vmlinuz: O kernel do Linux compactado.

    initramfs: O sistema de arquivos em memória para partida (initial RAM Filesystem), que é montado antes do diretório raiz estar disponível.

Esses arquivos têm nomes mais longos que dependem da versão do kernel, e com a forma exata dependendo da distribuição Linux. Além disso ao invés de initramfs, o arquivo pode ser chamado initrd, que significa RAM disk inicial(initial RAM disk)que era o método antigo, mas o nome sobreviveu.

O conteúdo exato do /boot varia de acordo com a distribuição e com o tempo; Em um sistema CentOS 7 temos:


$ ls -lF /boot




Em um passado distante, estes arquivos essenciais eram colocados no /, ao invés de ficarem no diretório /boot, de acordo com práticas tradicionais do UNIX, que hoje são consideradas obsoletas.


 Você já deve ter notado que há várias versões do kernel disponíveis no diretório /boot e, para cada versão, existem quatro arquivos. (A escolha entre kernels será feita usando o GRUB durante o boot.)

Os outros dois arquivos além do vmlinuz e initramfs são:

    config: O arquivo de configuração usado para compilar o kernel. Está aqui apenas para registro/auditoria e para facilitar o debug.

    System.map: A tabela de símbolos do kernel, que é muito útil para debug. Ela contém endereços hexadecimais de todos os símbolos do kernel.


Esses dois arquivos não são necessários para o boot ou a execução do sistema.

Distribuições podem colocar outros arquivos e diretórios no /boot, como backup dos setores de inicialização e outros dados gerados automaticamente.






 /dev


 Este diretório contém arquivos especiais de dispositivos(também conhecidos como nós de dispositivos) que representam dispositivos embarcados ou conectados ao sistema. Estes arquivos especiais são essenciais para que o sistema funcione adequadamente.


Estes arquivos representam dispositivos de caractere(char/character) (byte-stream) e dispositivos de bloco de I/O . Os dispositivos de rede não tem nós de dispositivos no Linux, e em vez disso são referenciados por nome, como eth1 ou wlan0.

 Todos as distribuições Linux modernas(não embarcadas) utilizam o sistema udev, que cria arquivos especiais, chamdos nós de dispositivo, no /dev quando os dispositivos são encontrados, tanto na inicialização do sistema quando quando um novo dispositivo é conectado no sistema. (Vamos apresentar o udev em uma seção posterior.)

Se você olhar o conteúdo do diretório /dev quando ele estiver desmontado, você vai ver um diretório vazio; durante a inicialização um sistema de arquivos virtual é criado e montado em /dev e os nós de dispositivos são criados por demanda pelo udev. Sistemas embarcados Linux podem ser estáticos, ou seja, ter dispositivos fixos e podem não usar o udev ou usar uma alternativa, como o mdev.


Conteúdo do /dev 


$ cd /dev ; ls -lF

lrwxrwxrwx  1 root root        3 Aug 28 10:12 cdrom1 -> sr0
....
lrwxrwxrwx  1 root root       15 Aug 28 10:12 fitbit -> bus/usb/003/002
....
crw-rw----  1 root lp       6, 0 Aug 28 10:12 lp0
crw-rw----  1 root lp       6, 1 Aug 28 10:12 lp1
....
brw-rw----  1 root disk     8, 4 Aug 28 10:12 sda4
brw-rw----  1 root disk     8, 5 Aug 28 10:12 sda5
brw-rw----  1 root disk     8, 6 Aug 28 10:12 sda6
....
brw-rw----+ 1 root cdrom   11, 0 Aug 28 10:12 sr0


Observe que dispositivos char(abreviação de caractere) começam com um c e dispositivos de bloco com um b, enquanto links simbólicos começam com um l (L minúsculo).




/etc


Este diretório contém arquivos de configuração do servidor e alguns scripts de inicialização; não devem existir executáveis binários neste diretório.

Distribuições costumam adicionar arquivos de configuração e diretórios na pasta /etc. Por exemplo, a Red Hat adiciona uma série diretórios como o /etc/sysconfig, que armazena arquivos e diretórios usados para configurar o sistema.

Outros subdiretórios importantes incluem /etc/skel, que contém um esqueleto usado como modelo para novos diretórios home, e /etc/init.d, que contém os scripts de inicialização do System V.

Arquivos e diretórios que podem ser encontrados neste diretório incluem:

    csh.login, exports, fstab, ftpusers, gateways, gettydefs,     group, host.conf, hosts.allow, hosts.deny, hosts,equiv,     hosts.lpd, inetd.conf, inittab, issue, ld.so.conf, motd,     mtab, mtools.conf, networks, passwd, printcap, profile,     protocols, resolv.conf, rpc, securetty, services, shells,     syslog.conf.
   




/home


Em sistemas Linux, os diretórios de usuários são convencionalmente salvos dentro do diretório /home, como em /home/coop, /home/student, etc. Tudo que seja pessoal como configurações, dados e programas executáveis é armazenado nesta hierarquia de diretórios. /home também pode conter subdiretórios para grupos ou conjuntos de usuários como /home/estudantes, /home/funcionarios, /home/aliens etc.


Em outros sistemas operacionais baseados em UNIX, o conceito da pasta /home existe mas pode ser ligeiramente diferente. Por exemplo no Solaris os diretórios dos usuários são criados em /export/home e o automount monta as pastas dos usuários sob demanda em /home. Isso acontece porque é comum que o diretório home esteja na rede em ambientes corporativos, provavelmente em um compartilhamento NFS, e a pasta home será montada automaticamente para o uso.


O Linux tem os mesmos recursos de automount , mas a maioria dos usuários não percebe quando eles estão em uso, e para o caso de sistemas em que tudo é resolvido por apenas um servidor, o conceito de pontos de montagem NFS provavelmente não se aplica.


Um usuário sempre pode substituir a variável de ambiente $HOME pela raiz do seu diretório pessoal, ou utilizar o atalho ~; por exemplo, os dois comandos abaixo são equivalentes:


$ ls -l $HOME/public_html

$ ls -l ~/public_html


Existe uma exceção: o diretório home para o super usuário root no Linux é sempre salvo na pasta /root. Alguns sistemas UNIX podem usar o diretório raiz do sistema / o que pode causar confusão.




/lib


Este diretório deve conter apenas as bibliotecas necessárias para executar os programas da pasta /bin e /sbin. Estas bibliotecas são particularmente importantes para iniciar o sistema e executar comandos no sistema de arquivo root(/).

Módulos do kernel ficam na pasta /lib/modules/.

Os arquivos do PAM (Pluggable Authentication Modules) ficam na pasta /lib/security.

Sistemas que suportam programas de 32-bit e 64-bit devem manter os dois tipos de biblioteca. Nos sistemas baseados em Red Hat existe um diretório separado para bibliotecas de 32-bit (/lib) e para as bibliotecas de 64-bit (/lib64).





/media



Este diretório é normalmente usado para montar sistemas de arquivos de mídias removíveis, como CDs, DVDs, pendrives USB, e até mesmo disquetes da era paleolítica.

Sistemas Linux modernos montam essas mídias de forma dinâmica, e após a inserção o udev cria diretórios na pasta  /media e depois monta o sistema de arquivos. Após a desmontagem e remoção, os diretórios utilizados como pontos de montagem no  /media serão apagados.

Se a mídia removível tem mais de uma partição, cada uma será montada em uma pasta diferente dentro do /media. Em muitas distribuições Linux o gerenciador de arquivos (como o Nautilus) irá mostrar pastas recém montadas.

Nota: Em algumas distribuições mais recentes (incluindo o SUSE e o RHEL 7) mídias removíveis irão aparecer sob a pasta /run/media/[nome do usuário]/.... Vamos falar mais sobre o /run no final deste capítulo.

/mnt

Este diretório é fornecido para que o administrador do sistema possa montar temporariamente um sistema de arquivos quando necessário. Um uso comum é para sistemas de arquivos de rede como:

    NFS
    Samba
    CIFS
    AFS


Historicamente, o /mnt também foi utilizado para estes tipos de montagem que agora são montados sob o /media (ou /run/media) em sistemas modernos.

De um modo geral, esse diretório não deve ser utilizado por programas de instalação.

/opt

Este diretório é projetado para pacotes de software que desejam manter a maioria dos seus arquivos em um lugar isolado, em vez de espalhá-los por toda a árvore de diretórios do sistema. Por exemplo, se dolphy_app fosse o nome de um aplicativo que fosse inteiramente instalado dentro do /opt, todos os arquivos serial colocados dentro da pasta /opt/dolphy_app, incluindo /opt/dolphy_app/bin para binários e /opt/dolphy_app/man para man pages.

Isso pode facilitar instalar e desinstalar o software, já que tudo está em uma localização conveniente e isolada. Também torna mais fácil determinar a natureza de cada arquivo e associá-lo a um pacote específico.

Entretanto,  ao usar sistemas de pacotes como RPM e APT, como veremos em breve, também é fácil instalar e remover software de uma forma limpa e controlada, mesmo quando os arquivos instalados por um pacote sejam espalhados por toda a árvore de diretórios.

No Linux, a pasta /opt é frequentemente usada por software proprietário, ou por aqueles que gostam de evitar complicações causadas pelas diferenças entre distribuições. Por exemplo no sistema RHEL 7 usado durante a elaboração deste curso, os únicos pacotes são /opt/skype e /opt/google com os subdiretórios chrome, earth, e talkplugin.

Os diretórios /opt/bin, /opt/doc, /opt/include, /opt/info, /opt/lib, e /opt/man são reservados para uso do administrador do sistema local. Os pacotes podem fornecer arquivos que terão links nestas pastas ou até mesmo copiados para elas, mas os pacotes devem ser capazes de funcionar sem os arquivos que estão nestes diretórios especiais.

/proc

Este diretório é um ponto de montagem para um sistema de arquivos virtual, em que toda a informação está na memória e não no disco. Assim como o /dev, o /proc é vazio se for examinado antes do sistema estar rodando.

O kernel expõe estruturas de dados importantes através do /proc. Cada processo em execução tem o seu próprio diretório dentro do /proc contendo informações detalhadas sobre o estado do processo, os recursos em uso no momento e desde que começou a rodar.

Os arquivos no /proc são chamados de arquivos virtuais e tem propriedades interessantes. Enquanto a maioria parece ter zero bytes de tamanho, eles podem exibir grande quantidade de informação.

Além disso, a maioria dos parâmetros de data e hora dos arquivos virtuais refletem a hora e a data atuais, indicando o fato de que eles estão sempre mudando. Na verdade, as informações contidas nestes arquivos é gerada apenas quando eles são lidos, porque eles não são atualizados periodicamente.

Arquivos virtuais importantes incluem /proc/interrupts, /proc/meminfo, /proc/mounts, e /proc/partitions, que apresentam uma visão atual do hardware do sistema.

Outros como /proc/filesystems e o diretório /proc/sys/ fornecem informações sobre a configuração do sistema e interfaces para alterá-las.

Por questões de organização, arquivos contendo informações sobre um mesmo tema são colocados em um subdiretório. Por exemplo, /proc/scsi/ contém informações sobre todos os dispositivos SCSI. Da mesma forma o diretório process contém informações sobre todos os processos em execução no sistema.

Vamos examinar extensamente os arquivos do /proc durante o curso, e veremos com detalhes sobre configuração(tuning) do kernel e monitoramento do sistema.

 /sys


Este diretório é o ponto de montagem para o sistema de arquivos virtual sysfs onde toda a informação reside apenas na memória, não no disco. Como o /dev e o /proc, o / diretório /sys está vazio quando o sistema não está rodando.

O sysfs é usado tanto para reunir informações sobre o sistema quanto para modificar o seu comportamento durante a execução. Nesse sentido,
se assemelha ao /proc, porém é mais jovem e melhor estruturado.
Por exemplo, quase todos os arquivos virtuais no /sys contém apenas uma linha, ou apenas um valor; não existem arquivos que produzem saídas longas como acontece no /proc.

Assim como fizemos com o /proc, vamos examinar entradas no /sys no decorrer deste curso para configurar o kernel e para monitorar do sistema.

/root

Esta pasta (pronunciado "barra-root") é o diretório home para o usuário root.

A conta do root é dona deste diretório e só deve ser usada para ações que necessitam de privilégios do super usuário. Para todas as ações que podem ser executadas por um usuário não privilegiado, use outra conta.

/sbin


Este diretório contém binários essenciais para a inicialização, restauração, recuperação e/ou reparação além dos binários do diretório /bin. Também é necessário poder montar outros sistemas de arquivo nas pastas /usr, /home e em outras pastas se necessário, após o sistema de arquivos root estiver corretamente montado durante o boot.

Os seguintes programas devem estar presentes(alguns apenas se o seus subsistemas estiverem instalados):

fdisk, fsck, getty, halt, ifconfig, init, mkfs, mkswap, reboot, route, swapon, swapoff, update.
Lembre-se: Algumas distribuições estão abandonando a estratégia de separar em partições diferentes as pastas /sbin e /usr/sbin (e também /bin e /usr/bin) e estão colocando os binários em uma pasta e criando links simbólicos para manter compatibilidade.



/tmp


Esta pasta é usada para armazenar arquivos temporários, e pode ser acessada por qualquer usuário ou aplicação. Entretanto arquivos salvos no diretório  /tmp não tem a existência garantida por muito tempo:

    Algumas distribuições rodam cron jobs automáticos, que normalmente removem arquivos com mais de 10 dias de idade. Essa é a política padrão do RHEL 6.

    Algumas distribuições removem o conteúdo da pasta /tmp a cada reboot. Essa tem sido a política padrão do Ubuntu.

    Algumas distribuições modernas utilizam um sistema de arquivos virtual, usando o diretório /tmp apenas como um ponto de montagem para um ram disk usando o sistema de arquivos tmpfs. Esta tem sido a política padrão para as versões recentes do Fedora. Quando o computador é reiniciado, toda informação é consequentemente perdida. /tmp é de fato temporário! 


No último caso, deve-se evitar criar grandes arquivos no /tmp: eles vão ocupar espaço na memória ao invés de ocupar espaço no disco, e é fácil afetar ou congelar o sistema por falta de memória. 

Enquanto a regra geral é que aplicativos devem evitar colocar grandes arquivos na pasta /tmp, há inúmeros programas que violam esta regra e colocam arquivos grandes no diretório /tmp. O problema é que mesmo sendo possível colocá-los em outra pasta(talvez por especificar uma variável de ambiente), muitos usuários não tem conhecimento de como fazer esta configuração e o acesso é irrestrito ao /tmp.


Esta política pode ser desativada em sistemas baseados no systemd, como o Fedora, com o comando:

$ systemctl mask tmp.mount
e seguido por um reboot.

 /usr


A pasta /usr pode ser vista como uma segunda hierarquia. Ela é usada para arquivos que não são necessários durante a inicialização do sistema. O /usr não precisa estar na mesma partição do diretório raiz, e pode ser compartilhado através da rede entre os hosts usando a mesma arquitetura.

Os pacotes de software não devem criar subdiretórios diretamente dentro do /usr , mas links simbólicos são tolerados para fins de compatibilidade.

Este diretório é normalmente montado como somente leitura. Ele contém os binários que não são necessários no modo monousuário. Porém a pasta   /usr/local, é onde binários locais podem ser salvos. As man pages ficam dentro da pasta /usr/share/man.


     Pasta       Função

  • /usr/bin  ==>   Scripts e executáveis não essenciais, que não são necessários em modo monousuário. Geralmente, isso significa aplicativos do usuário que não são necessários para o sistema funcionar corretamente.
  • /usr/include   ==>    Arquivos header usados para compilar aplicativos.
  • /usr/lib   ==>  Bibliotecas para programas salvos nas pastas /usr/bin e /user/sbin.
  • /usr/lib64  ==>  Bibliotecas 64-bit para programas 64-bit nas pastas /usr/bin e /usr/sbin.
  • /usr/sbin  ==>  Executáveis não essenciais do sistema como daemons do sistema.
  • /usr/share ==>   Dados compartilhados por aplicativos, geralmente independente da arquitetura.
  • /usr/src  ==>   Código fonte, normalmente para o kernel do Linux .
  • /usr/X11R6 ==>   Arquivos do ambiente gráfio X Window; Geralmente obsoleto. Não é mais presente em várias distribuições Linux modernas.
  • /usr/local  ==>  Aplicativo locais específicos do servidor. Subdiretórios comuns: bin, sbin, lib, share, include, etc.

/var

 Este diretório contém arquivos de dados variáveis ​​(ou voláteis) que mudam frequentemente durante a operação do sistema. Estes incluem:
  •     Os arquivos de log.
  •     Arquivos e diretórios spool para fila de impressão, filas de mensagens, etc.
  •     Arquivos de dados administrativos.
  •     Arquivos temporários, como conteúdo do cache.

Obviamente, /var não pode ser montado como um sistema de arquivos somente leitura.

Por razões de segurança, é muitas vezes considerada uma boa ideia montar o /var como um sistema de arquivos separado. Além disso, se o diretório ficar cheio, não deve bloquear todo o sistema.

/var/log é diretório onde a maioria dos arquivos de log estão salvos, e do diretório /var/spool armazena arquivos locais para processos como e-mail, impressão e tarefas agendadas.


 Diretório      Função
/var/ftp 
==>   Usado como a base do servidor FTP.
/var/lib  
==>    Dados persistentes, modificados por programas a medida que executam.
/var/lock
==>    Arquivos de Lock usados para controlar acesso simultâneo a recursos.
/var/log 
==>  Arquivos de Log.
/var/mail 
==>  Caixas de correio (mailboxes) dos usuários.
/var/run
==>   Informação sobre a execução do sistema desde o último boot.
/var/spool
==>    Tarefas em uma fila ou aguardando para serem processadas, como a fila de impressão.
/var/tmp
==>   Arquivos temporários que serão preservados entre reboots do sistema, algumas vezes relacionados com o /tmp.
/var/www
==>   Raiz da hierarquia dos websites.

/run


Uma nova árvore de diretórios montada em /run está em uso há anos pelas principais distribuições Linux, e mesmo tendo sido proposta para o FHS, ainda não foi formalmente aceito. É bom saber sobre este diretório como é bem provável que você vai encontrá-lo.

O propósito do /run é armazenar arquivos transitórios: aqueles que contém informações sobre o tempo de execução (run time), que podem ser salvas nos primeiros estágios da inicialização do sistema (boot), e que não precisam ser persistentes entre reinicializações.

Geralmente o /run é implementado como um ponto de montagem vazio, com o ram disk tmpfs (como /dev/shm) montado durante a inicialização do sistema. Logo este pseudo filesystem(sistema de arquivos artificial) só existe em memória.

Alguns caminhos existentes, como /var/run e /var/lock, são apenas links simbólicos para subdiretórios dentro do /run. Outras pastas, dependendo da distribuição podem também apenas apontar para locais dentro do /run.







Mais vistos no mês:

As melhores distribuições Linux para 2017

TuxMath - Tux, do Comando da Matemática. Ensino e diversão a crianças.

Teste de Performance de Rede com Iperf

DHCP - Guia Completo

Aula #14 - Os sistemas de arquivos ext2/ext3/ext4

OPNsense - Firewall Open Source

Ophcrack: Descubra todas as senhas do Windows

SSD no linux

Oracle Linux 7.0 Server com Xfce - Instalação e configurações iniciais