Poupe 15% em todos os serviços de alojamento

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código: Skills Começar a trabalhar
Secções
Administração Linux

Como Verificar Permissões de Arquivo no Linux: Um Guia Completo

Linux alimenta a maioria dos servidores do mundo — desde ambientes de VPS Hosting até Servidores Dedicados de nível empresarial — e com razão. É rápido, estável e construído com segurança no seu núcleo. Um dos pilares mais fundamentais dessa segurança é o sistema de permissões de ficheiros: um mecanismo preciso e elegante que controla exatamente quem pode ler, modificar ou executar qualquer ficheiro ou diretório no sistema.

Quer seja um programador a implementar uma aplicação web, um administrador de sistemas a reforçar um servidor, ou um iniciante a aprender a linha de comandos, compreender como verificar e interpretar permissões de ficheiros em Linux é uma competência inegociável. Este guia cobre tudo o que precisa de saber — desde o básico do modelo de permissões até aos bits especiais avançados — com comandos práticos e exemplos do mundo real.

O Que São Permissões de Ficheiros Linux?

Cada ficheiro e diretório em Linux tem um conjunto de permissões anexado. Estas permissões definem quais ações são permitidas e por quem. Existem três tipos de permissão principais:

PermissãoSímboloO Que Faz num FicheiroO Que Faz num Diretório
LeiturarVer o conteúdo do ficheiroListar os nomes dos ficheiros dentro
EscritawModificar ou eliminar o ficheiroCriar ou remover ficheiros dentro
ExecuçãoxExecutar o ficheiro como um programaEntrar (navegar para) o diretório

Estas três permissões são aplicadas independentemente a três categorias de utilizadores distintas:

  • Proprietário (utilizador) — O utilizador que é proprietário do ficheiro, normalmente o seu criador.
  • Grupo — Qualquer utilizador que pertença ao grupo atribuído do ficheiro.
  • Outros — Todos os outros no sistema.

Esta matriz de permissões três-por-três dá aos administradores Linux controlo granular e poderoso sobre o acesso a cada recurso no sistema.

Como Verificar Permissões de Ficheiros: O Comando ls -l

O método mais rápido e mais comumente utilizado para verificar permissões de ficheiros é o comando ls -l (formato de listagem longa).

ls -l file.txt

Exemplo de saída:

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 file.txt

Vamos decompor cada componente desta saída:

-  rw-  r--  r--   1   alice   developers   1024   Aug 16 12:30   file.txt
│   │    │    │    │     │          │          │         │             │
│   │    │    │    │     │          │          │         │             └─ Filename
│   │    │    │    │     │          │          │         └─ Last modified
│   │    │    │    │     │          │          └─ File size (bytes)
│   │    │    │    │     │          └─ Group name
│   │    │    │    │     └─ Owner name
│   │    │    │    └─ Number of hard links
│   │    │    └─ Others' permissions
│   │    └─ Group's permissions
│   └─ Owner's permissions
└─ File type (- = regular file, d = directory, l = symlink)

Portanto -rw-r--r-- diz-nos:

  • Proprietário (alice): Leitura + Escrita (rw-)
  • Grupo (developers): Apenas leitura (r--)
  • Outros: Apenas leitura (r--)

Verificar Permissões para Múltiplos Ficheiros

Para ver permissões de todos os ficheiros num diretório de uma vez:

ls -la /var/www/html

A flag -a inclui ficheiros ocultos (aqueles que começam com um ponto). Isto é especialmente útil ao auditar diretórios de servidores web num ambiente de Alojamento Web Partilhado ou VPS.

Obter Informações Detalhadas de Permissões com stat

Para uma análise mais completa — incluindo representações simbólicas e numéricas — use o comando stat:

stat file.txt

Exemplo de saída:

  File: file.txt
  Size: 1024            Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 131073      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)
Access: 2024-08-16 12:30:00.000000000 +0000
Modify: 2024-08-16 12:30:00.000000000 +0000
Change: 2024-08-16 12:30:00.000000000 +0000

A linha-chave é:

Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)

Isto dá-lhe:

  • Notação numérica (octal): 0644
  • Notação simbólica: -rw-r--r--
  • ID de Utilizador (UID) e ID de Grupo (GID) com os seus nomes legíveis

O comando stat é inestimável ao resolver erros de permissões em servidores de produção, pois fornece todo o contexto necessário numa única saída.

Compreender a Notação de Permissão Numérica (Octal)

As permissões do Linux podem ser expressas como números, que é o formato utilizado por comandos como chmod. Cada tipo de permissão é atribuído um valor:

PermissãoValor Numérico
Leitura (r)4
Escrita (w)2
Execução (x)1
Sem permissão (-)0

Você calcula o valor de permissão para cada categoria de utilizador adicionando os valores em conjunto:

CombinaçãoCálculoValor Numérico
rwx4 + 2 + 17
rw-4 + 2 + 06
r-x4 + 0 + 15
r--4 + 0 + 04
---0 + 0 + 00

Um número octal de três dígitos representa o conjunto completo de permissões:

0644  →  Owner: 6 (rw-)  |  Group: 4 (r--)  |  Others: 4 (r--)
0755  →  Owner: 7 (rwx)  |  Group: 5 (r-x)  |  Others: 5 (r-x)
0700  →  Owner: 7 (rwx)  |  Group: 0 (---)  |  Others: 0 (---)

Verificando Permissões em Diretórios

Diretórios usam o mesmo modelo de permissão, mas o significado de cada bit é ligeiramente diferente. Use ls -ld (note a flag -d) para inspecionar um diretório em si em vez de seu conteúdo:

ls -ld myfolder

Exemplo de saída:

drwxr-x--- 2 alice developers 4096 Aug 16 12:30 myfolder

O d inicial confirma que se trata de um diretório. As permissões se dividem em:

  • Proprietário (alice): rwx — Pode listar, criar/deletar arquivos e entrar no diretório
  • Grupo (developers): r-x — Pode listar arquivos e entrar, mas não pode criar ou deletar
  • Outros: --- — Sem acesso algum

> Importante: O bit de execução (x) em um diretório significa a capacidade de entrar nele (ou seja, usar cd). Sem x, um utilizador não pode navegar para o diretório mesmo que tenha permissão de leitura. Esta é uma fonte comum de confusão para principiantes.

Bits de Permissão Especiais: setuid, setgid e Sticky Bit

Além dos nove bits de permissão padrão, Linux suporta três bits de permissão especiais que fornecem controle de acesso avançado:

1. setuid (s no bit de execução do proprietário)

Quando definido em um arquivo executável, o programa é executado com os privilégios do proprietário do arquivo em vez dos do utilizador que o chama. É assim que comandos como passwd permitem que utilizadores regulares modifiquem /etc/shadow (que é propriedade do root).

ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Mar 27 2023 /usr/bin/passwd

O s na posição de execução do proprietário indica setuid.

2. setgid (s no bit de execução do grupo)

Em um arquivo, o programa é executado com os privilégios do grupo. Em um diretório, novos arquivos criados dentro herdam automaticamente o grupo do diretório — útil para pastas de projetos partilhadas.

ls -ld /shared/project
drwxrwsr-x 2 alice developers 4096 Aug 16 12:30 /shared/project

3. Sticky Bit (t no bit de execução de outros)

Quando definido em um diretório, apenas o proprietário do arquivo (ou root) pode eliminar ou renomear arquivos dentro dele, mesmo que outros tenham permissão de escrita. Esta é a configuração padrão para /tmp:

ls -ld /tmp
drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

O t no final indica que o sticky bit está ativo.

Representação numérica dos bits especiais:

Bit EspecialValor Numérico
setuid4000
setgid2000
Sticky bit1000

Portanto drwxrwxrwt = 1777 (1000 + 777).

Tabela de Referência Completa de Permissões

SimbólicoNuméricoSignificado num FicheiroSignificado num Diretório
---0Sem acessoSem acesso
--x1Apenas executarApenas entrar
-w-2Apenas escreverModificar conteúdos (com x)
-wx3Escrever + ExecutarEntrar e modificar
r--4Apenas lerListar nomes (requer x para ser útil)
r-x5Ler + ExecutarListar e entrar
rw-6Ler + EscreverListar e modificar (sem entrar)
rwx7Acesso completoControlo total

Exemplos de Permissões no Mundo Real

Aqui estão os padrões de permissão mais comuns que você encontrará na prática:

-rw-r--r-- (0644) — Arquivo Padrão

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 config.txt

O proprietário pode ler e escrever. Grupo e outros podem apenas ler. Típico para arquivos de configuração e conteúdo web.

-rwxr-xr-x (0755) — Script Executável ou Binário

-rwxr-xr-x 1 alice developers 4096 Aug 16 12:30 deploy.sh

O proprietário tem acesso total. Todos os outros podem ler e executar, mas não podem modificar. Padrão para scripts shell, binários de servidor web e executáveis públicos.

-rw------- (0600) — Arquivo Privado

-rw------- 1 alice alice 1679 Aug 16 12:30 id_rsa

Apenas o proprietário pode ler ou escrever. Sem acesso para ninguém mais. Obrigatório para chaves privadas SSH — SSH recusará usar um arquivo de chave com permissões mais amplas.

drwxr-xr-x (0755) — Diretório Público Padrão

drwxr-xr-x 5 alice developers 4096 Aug 16 12:30 public_html

Comum para diretórios raiz da web. O proprietário tem controle total; outros podem navegar e entrar.

drwx------ (0700) — Diretório Privado

drwx------ 3 alice alice 4096 Aug 16 12:30 .ssh

Completamente privado. Apenas o proprietário pode acessar. Obrigatório para o diretório ~/.ssh.

drwxrwxrwt (1777) — Gravável por Todos com Sticky Bit

drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

Todos podem criar arquivos, mas apenas o proprietário de cada arquivo pode deletar seus próprios arquivos.

Dicas Práticas para Ambientes de Servidor

Se você gerencia um servidor Linux — seja um VPS executando uma aplicação web, um servidor de correio protegido com um SSL Certificate, ou uma máquina hospedando múltiplos domínios registrados através de Domain Registration — aqui estão algumas práticas essenciais de permissões:

  1. Nunca defina 777 em arquivos ou diretórios a menos que você tenha uma razão muito específica e temporária. Arquivos graváveis por todos são um risco de segurança importante.
  2. Arquivos do servidor web (por exemplo, sob /var/www/) devem ser tipicamente 644 para arquivos e 755 para diretórios, pertencentes ao seu usuário de aplicação.
  3. Chaves SSH devem ser 600 para chaves privadas e 644 para chaves públicas. SSH impõe isso rigorosamente.
  4. Arquivos de configuração contendo senhas ou chaves API devem ser 600 ou 640 no máximo.
  5. Use find para auditar permissões em uma árvore de diretórios:
   # Find all world-writable files (potential security risk)
   find /var/www -type f -perm -o+w

   # Find all SUID files (for security auditing)
   find / -type f -perm -4000 2>/dev/null

Referência Rápida de Comandos

TarefaComando
Listar permissões de um ficheirols -l filename
Listar permissões de todos os ficheiros num diretóriols -la /path/to/dir
Verificar permissões do próprio diretóriols -ld /path/to/dir
Obter detalhes completos incluindo permissões numéricasstat filename
Alterar permissões (simbólico)chmod u+x filename
Alterar permissões (numérico)chmod 755 filename
Alterar proprietário do ficheirochown user:group filename
Alterar permissões recursivamentechmod -R 755 /path/to/dir
Encontrar ficheiros com permissões de escrita universalfind . -perm -o+w -type f

Conclusão

Compreender as permissões de ficheiros Linux não é apenas um exercício académico — é uma habilidade prática e diária para qualquer pessoa que gira servidores, implementa aplicações ou trabalha num ambiente Linux. Para resumir os pontos-chave:

  • Use ls -l para uma visão geral rápida e legível das permissões em ficheiros e diretórios.
  • Use stat quando precisar tanto de representações simbólicas como numéricas, juntamente com detalhes de propriedade.
  • Domine ambas as notações — simbólica (rwx) e numérica (755, 644) — pois diferentes ferramentas e documentação usam ambas de forma intercambiável.
  • Lembre-se da diferença de diretório: o bit de execução (x) num diretório significa a capacidade de entrar nele, não de o executar.
  • Esteja ciente dos bits especiais — setuid, setgid e sticky bit — pois aparecem frequentemente em sistemas de produção e têm implicações significativas de segurança.

A gestão adequada de permissões é uma pedra angular da segurança Linux. Quer esteja a executar um projeto pessoal em VPS Hosting ou a administrar uma frota de Servidores Dedicados, acertar nas permissões desde o início irá poupá-lo de vulnerabilidades de segurança, aplicações danificadas e inúmeras horas de resolução de problemas no futuro.