Entendendo os Diretórios do Linux

Entendendo os Diretórios do Linux

No Linux, tudo começa na raiz: /. A partir dela, o sistema é organizado como uma árvore de diretórios. Aqui vai um guia claro e direto dos principais diretórios:

:card_index_dividers: / – Raiz (Root)

  • O topo de tudo. Todos os outros diretórios ficam “pendurados” nela.
  • Ex: /home, /etc, /bin, etc.

:bust_in_silhouette: /home

  • Casa dos usuários comuns.
  • Ex: Se seu nome de usuário for joao, seu diretório pessoal será /home/joao.

:brain: /root

  • Casa do usuário root (administrador do sistema).
  • Não confundir com /, que é a raiz de tudo.

:gear: /etc

  • Arquivos de configuração do sistema.
  • Ex: /etc/passwd (usuários), /etc/ssh/sshd_config (SSH), etc.

:wrench: /bin e /sbin

  • Executáveis essenciais para o sistema funcionar.
  • /bin: comandos básicos (como ls, cp, mv, bash).
  • /sbin: comandos administrativos (shutdown, reboot).

:package: /usr

  • “User System Resources” – arquivos compartilhados de aplicativos.
  • Tem subpastas:
    • /usr/bin: programas normais.
    • /usr/sbin: programas para admin.
    • /usr/lib: bibliotecas.
    • /usr/share: dados estáticos.

:articulated_lorry: /var

  • Arquivos variáveis, como:
    • Logs: /var/log
    • Emails, spool de impressão, caches: /var/mail, /var/spool, /var/cache

:soap: /tmp

  • Arquivos temporários (limpos após reboot).
  • Qualquer programa pode jogar arquivos temporários aqui.

:file_folder: /lib e /lib64

  • Bibliotecas essenciais para os executáveis em /bin e /sbin.

:floppy_disk: /boot

  • Arquivos de inicialização do sistema.
  • Contém o kernel (vmlinuz), initramfs, GRUB, etc.

:open_file_folder: /media e /mnt

  • Usado para montar dispositivos externos:
    • /media: mídia removível (pendrives, HDs).
    • /mnt: montagens manuais temporárias.

:package: /opt

  • Softwares opcionais instalados manualmente (fora do gerenciador de pacotes).
  • Ex: aplicativos de terceiros como Google Chrome, etc.

:link: /dev

  • Arquivos que representam dispositivos (HDs, USBs, etc.).
  • Ex: /dev/sda1, /dev/null

:light_bulb: /proc e /sys

  • Pseudo-sistemas de arquivos usados para ver info do sistema e hardware.
  • Ex:
    • /proc/cpuinfo, /proc/meminfo
    • /sys/class/net/ (interfaces de rede)

:penguin: /run (ou /var/run)

  • Armazena arquivos temporários de estado do sistema, como:
    • PID de processos (/run/nginx.pid)
    • Sockets temporários
  • Importante para serviços em execução
  • Limpo na reinicialização.

:top_hat: /srv

  • Significa “Service”.
  • Guarda dados de serviços que o sistema fornece:
    • /srv/http → conteúdo de um servidor web
    • /srv/ftp → arquivos de um servidor FTP

É como o “estoque” do servidor.


:dna: /lost+found

  • Presente em sistemas de arquivos ext3/ext4.
  • Usado pelo fsck para guardar fragmentos recuperados após falhas.
  • Cada partição com ext4 tem o seu.

:teacher: /selinux (ou /sys/fs/selinux)

  • Se o sistema usa SELinux (Red Hat, Fedora…), esse diretório contém configurações e controles de segurança mandados pelo kernel.

:mirror: /mnt/c, /mnt/d, etc. (no WSL – Windows Subsystem for Linux)

  • Se você usa Linux no Windows via WSL, verá essas montagens para acessar discos do Windows.

:test_tube: /lib/modules

  • Guarda os módulos do kernel (drivers, etc.).
  • Muito usado ao compilar ou instalar kernel novo.

:outbox_tray: /export

  • Usado em sistemas que exportam diretórios via NFS (Network File System).
  • Diretórios montados remotamente podem vir daqui.

:magic_wand: Diretórios simbólicos que mudam com links:

/bin → pode ser link simbólico para /usr/bin

/sbin → pode apontar para /usr/sbin

/lib → pode apontar para /usr/lib

Em sistemas mais novos (como Debian >= 11, Ubuntu >= 20.04), isso virou padrão.


Bônus: Estrutura completa (simplificada)

/
├── bin        # Comandos básicos
├── boot       # Inicialização (kernel, GRUB)
├── dev        # Dispositivos
├── etc        # Configurações
├── home       # Diretórios dos usuários
├── lib        # Bibliotecas essenciais
├── media      # Dispositivos montados automaticamente
├── mnt        # Montagens temporárias
├── opt        # Programas opcionais
├── proc       # Sistema de arquivos virtual do kernel
├── root       # Home do root
├── run        # Info de processos atuais
├── sbin       # Programas administrativos
├── srv        # Dados de serviços
├── sys        # Info e controle do hardware
├── tmp        # Arquivos temporários
├── usr        # Programas de usuários e bibliotecas
└── var        # Logs, spool, etc.

Leia: Cadê o Disco C do Linux? Entenda as pastas do sistema de forma simples

7 curtidas

Tópico bem esclarecedor! Muito obrigado.
Tenho uma dúvida: eu conseguiria passar uma pasta /home/fulano para dentro da pasta /root? Isso lhe faria um usuário root?

1 curtida

Não faria ser root. Se root é ter privilegios de adminstrador, no chmod equivale a um 777.

Inclusive você pode criar um usuário sem que tenha uma pasta no /home para ele.

Eu achava que o lost+fund era vírus, e eu tentava deletar e sempre voltava, até que um dia eu percebe que quem estava criando ela era o fsck.

1 curtida

Tem alguns pontos que eu acho importante detalhar:

Não deveriam estar agrupados, eles fazem coisas diferentes:

  • proc permite acesso direto a informações sobre processos

  • sys permite acesso direto a interfaces do kernel

Esse é usado (ou deveria pelo menos), apenas para dispositivos reais como um pendrive, um ssd…

E esse para montagens de arquivos de imagens e similares

Esse é onde ficam os carregadores ELF, pra quem não teve curiosidade de pesquisar, o Linux roda aplicativos dinâmicos de forma parecida como o WINE funciona, tem um programa que lê esses aplicativos e traduz as chamadas de sistema da biblioteca c para instruções de kernel

Não são meros dados estático, são dados do padrão XDG e essa pasta é configurável e pode existir em mais de um lugar, um exemplo é/usr/local/share, é nela que ficam as fontes por exemplo

2 curtidas