Permissões de Arquivos no Linux/Windows
Como rwx, chmod e os valores numéricos definem quem pode ler, alterar ou executar qualquer arquivo no sistema
O controle invisível
Todo arquivo em um sistema Unix-like carrega regras invisíveis.
Essas regras determinam quem pode:
Ler
Modificar
Executar
Sem elas, qualquer usuário poderia alterar arquivos críticos, comprometer contas, inserir código malicioso ou destruir o ambiente inteiro.
Permissões não são detalhe técnico.
São a primeira linha de defesa do sistema operacional.
Entendendo o rwx
Cada arquivo possui três tipos básicos de permissão:
r, read, leitura
w, write, escrita
x, execute, execução
Exemplo real:
-rwxr-xr--
Isso representa três blocos:
rwx r-x r--user group others
Significado:
user, dono do arquivo
group, grupo associado
others, todos os demais usuários
Visualizando permissões com ls -l
Comando:
ls -l
Exemplo:
-rwxr-xr-- 1 shadows users 2048 Feb 13 script.sh
Vamos desmontar:
Primeiro caractere: tipo do arquivo
Dono: shadows
Grupo: users
Permissões:
dono: rwx
grupo: r-x
outros: r--
O primeiro caractere, tipo do arquivo
O primeiro símbolo indica o tipo:
| Símbolo | Tipo |
|---|---|
| - | Arquivo comum |
| d | Diretório |
| l | Link simbólico |
| c | Dispositivo de caractere |
| b | Dispositivo de bloco |
| s | Socket |
| p | Pipe |
Exemplo:
drwxr-xr-x pasta/
O "d" indica diretório.
O sistema numérico das permissões
Cada permissão tem valor numérico:
r = 4
w = 2
x = 1
Somando os valores, temos:
| Valor | Permissão |
|---|---|
| 0 | --- |
| 1 | --x |
| 2 | -w- |
| 3 | -wx |
| 4 | r-- |
| 5 | r-x |
| 6 | rw- |
| 7 | rwx |
Exemplo:
chmod 755 arquivo
Significa:
7, dono, rwx
5, grupo, r-x
5, outros, r-x
Entendendo o chmod
chmod significa change mode.
Sintaxe numérica:
chmod 755 arquivo
Sintaxe simbólica:
chmod u+x arquivo
Significados:
u, user
g, group
o, others
Exemplos:
Permitir execução:
chmod +x script.sh
Remover escrita:
chmod -w arquivo.txt
Permissões em diretórios
Diretórios interpretam permissões de forma diferente:
r permite listar conteúdo
w permite criar ou remover arquivos
x permite acessar o diretório
Sem x, o diretório não pode ser acessado, mesmo que tenha r.
Ownership, dono e grupo
Permissões funcionam dentro de um contexto de propriedade.
Exemplo:
-rwx------ shadows users script.sh
Mesmo com rwx, outro usuário não pode acessar.
Ownership define autoridade.
Alterar dono:
sudo chown usuario arquivo
Alterar dono e grupo:
chown usuario:grupo arquivo
Permissões especiais, SUID, SGID e Sticky Bit
Existem três permissões avançadas.
SUID, Set User ID
Valor: 4 na casa especial.
chmod 4755 arquivo
Resultado:
-rwsr-xr-x
Quando executado, roda com permissões do dono.
Exemplo real:
/usr/bin/passwd
Permite alterar senha sem acesso direto ao /etc/shadow.
SGID, Set Group ID
Valor: 2
chmod 2755 pasta
Arquivos criados dentro herdam o grupo da pasta.
Muito usado em ambientes colaborativos.
Sticky Bit
Valor: 1
chmod 1777 /tmp
Resultado:
drwxrwxrwt
Usuários não podem remover arquivos de outros usuários.
Essencial para diretórios públicos.
Permissões padrão e umask
Todo arquivo nasce com permissões padrão.
Arquivos: 666
Diretórios: 777
Mas o sistema aplica um filtro chamado umask.
Ver valor atual:
umask
Exemplo:
022
Resultado:
Arquivos: 666 - 022 = 644
Diretórios: 777 - 022 = 755
Isso explica por que arquivos não vêm executáveis por padrão.
Links simbólicos
lrwxrwxrwx link -> arquivo
Links simbólicos ignoram permissões próprias.
A segurança depende do arquivo alvo.
Auditoria de segurança prática
Ver tudo:
ls -la
Buscar permissões perigosas:
find / -perm 777 2>/dev/null
Buscar SUID:
find / -perm -4000 2>/dev/null
Esses comandos são rotina em auditorias e pentests.
Cenário real de risco
Script inseguro:
-rwxrwxrwx backup.sh
Qualquer usuário pode alterar.
Se root executar, o sistema pode ser comprometido.
Exemplo extremo:
chmod 777 /etc/passwd
Permitir modificação de contas do sistema.
Permissões incorretas são vetor comum de privilege escalation.
ACLs no Linux, controle granular
Além do chmod tradicional, Linux suporta ACL.
Ver ACL:
getfacl arquivo
Definir ACL:
setfacl -m u:usuario:rwx arquivo
Permite controle refinado além do modelo clássico.
Equivalência no Windows
O Windows utiliza ACLs, Access Control Lists.
Leitura
Gravação
Execução
Modificação
Controle total
Diferença central:
Linux usa modelo simples e direto.
Windows usa modelo mais granular e detalhado.
Equivalência básica:
| Linux | Windows |
|---|---|
| r | Read |
| w | Write |
| x | Execute |
| rwx | Full Control |
Perspectiva ofensiva e defensiva
Permissões incorretas permitem:
Privilege escalation
Execução arbitrária
Persistência
Movimento lateral
Permissões corretas implementam:
Princípio do menor privilégio
Isolamento
Integridade
Controle estrutural
Permissões são o firewall interno do sistema de arquivos.
