15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
16.08.2025

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 que 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)

Então -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 problemas de permissões em servidores de produção, pois fornece todo o contexto que precisa numa única saída.

Compreender a Notação de Permissões Numéricas (Octal)

As permissões 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

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 de permissões completo:

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 (---)

Verificar Permissões em Diretórios

Os diretórios utilizam o mesmo modelo de permissões, mas o significado de cada bit é ligeiramente diferente. Use ls -ld (note a flag -d) para inspecionar um diretório em si em vez do 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 isto é um diretório. As permissões decompõem-se como:

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

> Importante: O bit de execução (x) num 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

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

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

Quando definido num ficheiro executável, o programa é executado com os privilégios do proprietário do ficheiro em vez dos do utilizador que chama. É assim que comandos como passwd permitem aos utilizadores normais modificar /etc/shadow (que é propriedade de 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)

Num ficheiro, o programa é executado com os privilégios do grupo. Num diretório, novos ficheiros criados dentro herdam automaticamente o grupo do diretório — útil para pastas de projeto 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 num diretório, apenas o proprietário do ficheiro (ou root) pode eliminar ou renomear ficheiros 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 sinaliza que o sticky bit está ativo.

Representação numérica de bits especiais:

Bit EspecialValor Numérico
setuid4000
setgid2000
Sticky bit1000

Então drwxrwxrwt = 1777 (1000 + 777).

Tabela de Referência de Permissões Completa

SimbólicoNuméricoSignificado num ficheiroSignificado num diretório
---0Sem acessoSem acesso
--x1Apenas execuçãoApenas entrar
-w-2Apenas escritaModificar conteúdo (com x)
-wx3Escrita + ExecuçãoEntrar e modificar
r--4Apenas leituraListar nomes (requer x para ser útil)
r-x5Leitura + ExecuçãoListar e entrar
rw-6Leitura + EscritaListar e modificar (sem entrar)
rwx7Acesso completoControlo completo

Exemplos de Permissões do Mundo Real

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

-rw-r--r-- (0644) — Ficheiro 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 ficheiros 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 completo. 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) — Ficheiro Privado

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

Apenas o proprietário pode ler ou escrever. Sem acesso para mais ninguém. Obrigatório para chaves privadas SSH — SSH recusará usar um ficheiro 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 de raiz web. O proprietário tem controlo completo; 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 aceder. 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 ficheiros, mas apenas o proprietário de cada ficheiro pode eliminar os seus próprios ficheiros.

Dicas Práticas para Ambientes de Servidor

Se gere um servidor Linux — quer seja um VPS a executar uma aplicação web, um servidor de correio protegido com um Certificado SSL, ou uma máquina alojando múltiplos domínios registados através de Registo de Domínios — aqui estão algumas práticas essenciais de permissões:

  1. Nunca defina 777 em ficheiros ou diretórios a menos que tenha uma razão muito específica e temporária. Ficheiros graváveis por todos são um risco de segurança major.
  2. Ficheiros de servidor web (por exemplo, sob /var/www/) devem tipicamente ser 644 para ficheiros e 755 para diretórios, propriedade do seu utilizador de aplicação.
  3. Chaves SSH devem ser 600 para chaves privadas e 644 para chaves públicas. SSH impõe isto estritamente.
  4. Ficheiros de configuração contendo senhas ou chaves API devem ser ###PPT
15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar