Permissões Linux servidor web. Vamos organizar isso de forma completa e prática, cobrindo estrutura de arquivos no Linux/servidor e permissões, de maneira que fique fácil de entender e aplicar.
1️⃣ Estrutura de arquivos em sistemas Linux
O Linux segue um hierarquia padrão de diretórios (Filesystem Hierarchy Standard – FHS). Aqui estão os principais diretórios que você vai encontrar:
| Diretório | Finalidade principal |
|---|---|
/ | Diretório raiz. Todos os arquivos e diretórios estão dentro dele. |
/bin | Comandos essenciais do sistema, disponíveis para todos os usuários. Ex: ls, cat. |
/sbin | Comandos de administração do sistema, geralmente só para root. Ex: iptables. |
/usr | Programas, bibliotecas e documentação de usuário. Subdiretórios comuns: /usr/bin, /usr/lib. |
/usr/local | Software instalado manualmente (fora do gerenciador de pacotes). |
/etc | Arquivos de configuração do sistema e serviços. Ex: /etc/passwd, /etc/ssh/sshd_config. |
/var | Dados variáveis: logs, bancos de dados, emails. Ex: /var/log, /var/www. |
/home | Diretórios pessoais dos usuários. Ex: /home/germano. |
/tmp | Arquivos temporários. Normalmente limpo a cada reinício. |
/dev | Arquivos de dispositivos (hardware). Ex: /dev/sda. |
/proc | Sistema de arquivos virtual com informações do kernel e processos. Ex: /proc/cpuinfo. |
/lib | Bibliotecas essenciais do sistema. Ex: /lib/x86_64-linux-gnu/. |
2️⃣ Permissões de arquivos e diretórios
Cada arquivo ou diretório tem 3 tipos de permissão:
- Leitura (r) – Pode ver o conteúdo do arquivo ou listar o diretório.
- Escrita (w) – Pode modificar o arquivo ou criar/excluir arquivos no diretório.
- Execução (x) – Pode executar o arquivo (se for um programa) ou entrar no diretório.
E essas permissões são divididas entre 3 categorias de usuários:
| Categoria | Significado |
|---|---|
| u (user) | Dono do arquivo |
| g (group) | Grupo do arquivo |
| o (others) | Todos os outros usuários |
Exemplo de ls -l:
-rwxr-xr--
rwx→ dono pode ler, escrever e executarr-x→ grupo pode ler e executar, mas não escreverr--→ outros podem apenas ler
2.1 Modificando permissões
- Usando símbolos:
chmod u+x arquivo.txt # adiciona permissão de execução ao dono chmod g-w arquivo.txt # remove permissão de escrita do grupo chmod o+r arquivo.txt # adiciona permissão de leitura para outros
- Usando números (octal):
| Valor | Permissão |
|---|---|
| 0 | — |
| 1 | –x |
| 2 | -w- |
| 3 | -wx |
| 4 | r– |
| 5 | r-x |
| 6 | rw- |
| 7 | rwx |
Exemplo:
chmod 754 arquivo.txt # 7 = rwx dono # 5 = r-x grupo # 4 = r-- outros
2.2 Proprietário e grupo
- Para ver dono e grupo:
ls -l arquivo.txt - Para alterar dono:
chown usuario arquivo.txt - Para alterar grupo:
chgrp grupo arquivo.txt
Exemplo:
chown germano arquivo.txt chgrp admins arquivo.txt
2.3 Permissões especiais
- SUID (Set User ID): executa com permissões do dono do arquivo.
- SGID (Set Group ID): executa com permissões do grupo ou herda grupo em diretórios.
- Sticky bit: em diretórios, só permite que o dono exclua arquivos próprios. Ex:
/tmp.
Exemplo:
chmod 4755 programa # SUID chmod 2755 pasta # SGID chmod +t /tmp # Sticky bit
Vamos criar um mapa visual da estrutura de diretórios do Linux com permissões recomendadas para servidores web, destacando o que é seguro para produção.
Estrutura de diretórios Linux – Servidor Web
/
├── bin/ # Comandos essenciais
│ └── perm: 755
├── sbin/ # Comandos administrativos
│ └── perm: 755
├── etc/ # Configurações do sistema
│ └── perm: 755
│ └── sshd_config, nginx.conf, etc.: 600-644
├── var/ # Dados variáveis
│ ├── log/ # Logs do sistema e serviços
│ │ └── perm: 755 (arquivos: 600-644)
│ ├── www/ # Diretórios de sites
│ │ └── perm: 755 (arquivos do site: 644)
│ └── tmp/ # Temporários
│ └── perm: 1777 (sticky bit)
├── home/ # Diretórios de usuários
│ └── usuario/ # Seu usuário
│ └── perm: 700-750 (segurança pessoal)
├── usr/ # Software e bibliotecas
│ ├── bin/ # Programas instalados
│ │ └── perm: 755
│ └── local/ # Softwares instalados manualmente
│ └── perm: 755
├── lib/ # Bibliotecas essenciais
│ └── perm: 755
├── dev/ # Dispositivos do sistema
│ └── perm: 600-666 (gerido pelo kernel)
├── proc/ # Sistema de arquivos virtual
│ └── perm: 555 (somente leitura)
└── tmp/ # Temporários
└── perm: 1777 (sticky bit)
💡 Dicas de permissões para servidores web
- Arquivos do site: 644 (leitura para todos, escrita só para dono)
chmod 644 /var/www/html/index.php - Pastas do site: 755 (leitura e execução para todos, escrita só para dono)
chmod 755 /var/www/html - Arquivos sensíveis de configuração: 600-640
chmod 600 /etc/nginx/nginx.conf - Diretórios temporários: 1777 (sticky bit)
chmod 1777 /tmp - Evitar 777: nunca dê permissão total para todos, risco de invasão.

FAQ
Para arquivos de sites, use 644 (leitura para todos, escrita só para o dono). Para pastas, use 755.
O sticky bit protege diretórios temporários, permitindo que apenas o dono exclua arquivos. Exemplo: /tmp com permissão 1777.
Permissão 777 permite que qualquer usuário modifique arquivos, aumentando o risco de invasão.
Dono é o usuário que possui o arquivo, grupo define permissões para usuários do mesmo grupo, e outros aplica a todos os demais.
Configure permissões 600-640 para arquivos críticos como /etc/nginx/nginx.conf, garantindo que apenas o root ou o dono possa lê-los.

