Calculadora Chmod: Compreender as permissões de ficheiros Unix
Nos sistemas baseados em Unix e Linux, as permissões de ficheiros são um aspeto crítico da segurança e da administração do sistema. O comando chmod (change mode) é a ferramenta utilizada para gerir quem pode ler, escrever ou executar um ficheiro ou diretório. Embora o sistema seja lógico, as representações numéricas e simbólicas podem ser confusas para principiantes e até para alguns programadores experientes.
Neste guia, explicaremos como funcionam as permissões Unix, a diferença entre os modos octal e simbólico, e forneceremos uma tabela de referência completa.
O básico das permissões Unix
Cada ficheiro e diretório num sistema Linux tem três tipos de permissões para três classes diferentes de utilizadores.
As três classes
- Utilizador (u): O proprietário do ficheiro.
- Grupo (g): Membros do grupo ao qual o ficheiro pertence.
- Outros (o): Todos os outros utilizadores do sistema.
As três permissões
- Leitura (r): Permissão para ver o conteúdo de um ficheiro ou listar o conteúdo de um diretório.
- Escrita (w): Permissão para modificar um ficheiro ou adicionar/remover ficheiros num diretório.
- Execução (x): Permissão para executar um ficheiro como um programa/script ou entrar num diretório.
Modo Octal (numérico) explicado
O modo octal utiliza três dígitos para representar as permissões. Cada dígito é a soma dos valores das permissões para essa classe.
- Leitura (r) = 4
- Escrita (w) = 2
- Execução (x) = 1
- Sem permissão = 0
Como calcular um dígito:
Leitura (4) + Escrita (2) + Execução (1) = 7(Permissões totais)Leitura (4) + Escrita (2) = 6(Leitura e Escrita)Leitura (4) + Execução (1) = 5(Leitura e Execução)Leitura (4) = 4(Apenas leitura)
Exemplo: chmod 755
- Utilizador: 7 (4+2+1) -> rwx
- Grupo: 5 (4+1) -> r-x
- Outros: 5 (4+1) -> r-x
Modo Simbólico explicado
O modo simbólico utiliza letras para representar as classes e as permissões.
- Classes:
u(utilizador),g(grupo),o(outros),a(todos) - Operações:
+(adicionar),-(remover),=(definir exatamente) - Permissões:
r,w,x
Exemplo: chmod u+x script.sh
Isto adiciona a permissão de execução ao proprietário do ficheiro.
Tabela de Referência Chmod
| Octal | Simbólico | Descrição | Caso de uso comum |
|---|---|---|---|
| 777 | a+rwx |
Todos podem fazer tudo | Pastas públicas (Use com cautela!) |
| 755 | u=rwx,go=rx |
Proprietário faz tudo, outros leem/executam | Diretórios de servidor web, Scripts |
| 644 | u=rw,go=r |
Proprietário lê/escreve, outros apenas leem | Ficheiros de texto normais, ficheiros HTML |
| 600 | u=rw,go= |
Apenas proprietário lê/escreve | Chaves privadas, chaves SSH |
| 400 | u=r,go= |
Apenas proprietário lê | Ficheiros de configuração sensíveis |
| 700 | u=rwx,go= |
Apenas proprietário faz tudo | Scripts ou diretórios privados |
Casos de uso comuns e exemplos
Tornar um script executável
chmod +x meu-script.sh
# ou
chmod 755 meu-script.sh
Proteger uma chave privada SSH
As chaves SSH não funcionarão se estiverem demasiado acessíveis. Devem ser restritas apenas ao proprietário.
chmod 600 ~/.ssh/id_rsa
Alterar permissões recursivamente
Para alterar as permissões de um diretório e de todo o seu conteúdo:
chmod -R 755 /caminho/para/diretorio
Permissões especiais: SUID, SGID e Sticky Bit
Sistemas Linux avançados utilizam um quarto dígito inicial para permissões especiais:
- SUID (4): Quando o ficheiro é executado, o processo corre com os privilégios do proprietário.
- SGID (2): O processo corre com os privilégios do grupo, ou os ficheiros criados no diretório herdam o grupo.
- Sticky Bit (1): Apenas o proprietário de um ficheiro num diretório pode eliminá-lo ou renomeá-lo (frequentemente usado para
/tmp).
Exemplo: chmod 1777 /tmp (Acesso total para todos, mas apenas proprietários podem eliminar os seus ficheiros).
Perguntas Frequentes (FAQ)
O que significa exatamente "755"?
Significa que o proprietário tem permissões de Leitura, Escrita e Execução (4+2+1=7). O grupo e os outros têm permissões de Leitura e Execução (4+1=5).
Por que o 777 é considerado perigoso?
O 777 permite que qualquer utilizador no sistema modifique ou elimine os seus ficheiros. Num ambiente web, isto pode permitir que um atacante carregue scripts maliciosos e os execute.
Como verifico as permissões atuais de um ficheiro?
Utilize o comando ls -l no seu terminal. Verá uma string como -rwxr-xr-x, onde o primeiro carácter é o tipo de ficheiro e os 9 caracteres seguintes representam as permissões.
Conclusão
Compreender as permissões de ficheiros é vital para manter um ambiente Linux seguro e funcional. Embora códigos numéricos como 644 ou 755 sejam o padrão, a utilização de uma calculadora online pode ajudá-lo a visualizar exatamente o que cada código representa.
Precisa de encontrar o código de permissão correto rapidamente? Use a nossa Calculadora Chmod (brevemente) para gerar o comando perfeito para as suas necessidades!