Calculadora chmod — permissões de arquivos no Linux (octal ⇄ rwx)

Marque as caixas de Leitura, Escrita e Execução para obter o modo octal e o comando chmod, ou decodifique 755, 644 e rwxr-xr-x.

Permissões
QuemLeituraEscritaExecuçãoDígito
Dono (user)7
Grupo5
Outros5
Cole “-rw-r--r--” ou “drwxr-sr-x” direto do ls -l.
Octal
0755
ls -l
-rwxr-xr-x
Comando
chmod 755 deploy.sh
chmod u=rwx,g=rx,o=rx deploy.sh
O que 755 significa para um arquivo
  • Dono (7): ler, escrever, executar
  • Grupo (5): ler, executar
  • Outros (5): ler, executar
Predefinições comuns
Avaliar uma expressão chmod simbólica

Veja o que chmod u+x,go-w faz com um modo existente. Aceita u/g/o/a, + - =, r w x X s t e cópias como g=u. Usa a configuração de diretório acima para o X.

644 (rw-r--r--) → 744 (rwxr--r--)

Funciona inteiramente no seu navegador. Nada do que você digita é enviado para lugar nenhum. Ver todas as ferramentas grátis.

Encontrou um problema ou algo que poderia ser melhor? Lemos todas as mensagens e corrigimos rápido.

Esta calculadora chmod converte permissões de arquivos Unix e Linux entre uma grade de caixas de seleção, o número octal que o chmod usa (755, 644, 2775) e a string rwxr-xr-x que o ls -l exibe. Mude qualquer um e os outros acompanham, junto com um comando chmod pronto para colar e uma explicação em linguagem simples de quem pode fazer o quê. Ela trata os bits setuid, setgid e sticky e explica como os mesmos bits significam coisas diferentes num diretório.

Ela também avalia expressões simbólicas do chmod como u+x,go-w ou a=rX sobre um modo inicial, com as mesmas regras do GNU chmod, para você conferir o que um comando vai fazer antes de rodá-lo num servidor. Uma diferença: quando você omite a letra u/g/o, o chmod de verdade aplica a sua umask, enquanto esta ferramenta trata como “a” (como se a umask fosse 000). Nada mexe nos seus arquivos; é só uma calculadora.

Como usar

  1. Marque as caixas de Leitura, Escrita e Execução para dono, grupo e outros, ou digite um modo octal como 750, ou cole uma string como -rw-r--r-- do ls -l.
  2. Marque “É um diretório” se estiver definindo permissões de uma pasta; a explicação muda, porque x num diretório significa “pode entrar”.
  3. Digite o nome do arquivo, marque Recursivo se precisar e copie o comando chmod.
  4. Para conferir uma mudança relativa, informe o modo atual e uma expressão como u+x,go-w no campo de expressão e veja o resultado.
  5. Use uma predefinição quando só precisar da resposta de sempre: 644 para arquivos, 755 para diretórios e scripts, 600 para chaves privadas.

Perguntas frequentes

O que significa chmod 755?

Cada dígito é uma soma de leitura (4), escrita (2) e execução (1), para dono, grupo e outros, nessa ordem. 7 = 4+2+1, então o dono pode ler, escrever e executar; 5 = 4+1, então grupo e outros podem ler e executar, mas não escrever. Como string, fica rwxr-xr-x. É o modo padrão para diretórios e para scripts ou programas que todos devem poder executar.

Qual é a diferença entre 644 e 755?

Só o bit de execução. 644 (rw-r--r--) permite que o dono leia e escreva e que todos os outros leiam; é o modo normal para documentos, páginas web, imagens e configurações. 755 acrescenta execução para todos, que um diretório precisa para que se possa entrar nele e um script precisa para ser executado. Dar 755 a arquivos comuns é inofensivo, mas desleixado; dar 644 a um diretório o torna inutilizável para os outros.

Por que chmod 777 é uma má ideia?

777 dá a todo usuário do sistema permissão para modificar ou substituir o arquivo, ou para adicionar e excluir arquivos no diretório. Num servidor web, isso significa que qualquer processo comprometido, como um plugin vulnerável rodando com outro usuário, pode reescrever o seu código. A correção de verdade para um erro de “permission denied” costuma ser mudar o dono (chown) ou adicionar o usuário do servidor web ao grupo do arquivo e depois usar 755/644 ou 775/664.

O que são setuid, setgid e sticky bit?

São o quarto dígito octal opcional (o da frente). O setuid (4) faz um executável rodar com os privilégios do seu dono, e é assim que o passwd consegue editar /etc/shadow. O setgid (2) num executável o roda com o grupo do arquivo; num diretório, faz com que novos arquivos herdem o grupo do diretório, o que é útil para pastas compartilhadas de equipe (2775). O sticky bit (1) num diretório permite que só o dono de um arquivo o exclua, como em /tmp (1777).

Que permissões as chaves SSH devem ter?

O OpenSSH recusa chaves privadas que outros podem ler. Use 600 (ou 400) para chaves privadas como ~/.ssh/id_ed25519, 644 para chaves públicas (.pub), 600 para ~/.ssh/authorized_keys e ~/.ssh/config e 700 para o próprio diretório ~/.ssh. A AWS e outros provedores de nuvem mandam fazer chmod 400 no arquivo .pem que eles fornecem pelo mesmo motivo.

O que significa um S ou T maiúsculo no ls -l?

Um s ou t minúsculo significa que o bit especial está ativado e que o bit de execução por baixo dele também está. Um S ou T maiúsculo significa que o bit especial está ativado, mas a execução não, o que geralmente é um erro: setuid num arquivo que ninguém pode executar não faz nada, então rwSr--r-- costuma ser sinal de que alguém rodou chmod u+s no arquivo errado.

Bits de permissão em arquivos vs. diretórios

• r num arquivo: ler o conteúdo. Num diretório: listar os nomes dentro dele (ls).

• w num arquivo: alterar o conteúdo. Num diretório: criar, excluir e renomear entradas dentro dele, mas só junto com x. Excluir um arquivo é uma gravação no diretório dele, não no arquivo.

• x num arquivo: executá-lo como programa ou script. Num diretório: entrar nele (cd) e acessar os arquivos de dentro pelo nome. Um diretório com r mas sem x permite listar os nomes, mas não abrir nada.

As permissões são verificadas pela primeira classe que se aplica a você: se você é o dono, só os bits do dono valem, mesmo que os bits do grupo ou de outros sejam mais generosos.

Sintaxe simbólica do chmod

Um modo simbólico é uma ou mais cláusulas separadas por vírgula no formato [quem][operador][permissões]. Quem é u (dono), g (grupo), o (outros) ou a (todos). O operador é + para adicionar, - para remover ou = para definir exatamente. As permissões são r, w, x, X (execução só se for diretório ou se já for executável por alguém), s (setuid/setgid) e t (sticky), ou um único u, g ou o para copiar os bits atuais de outra classe.

Exemplos: chmod u+x deploy.sh torna um script executável para o dono. chmod go-w file remove a escrita de todos, menos do dono. chmod -R a=rX public/ deixa uma árvore legível por todos, com diretórios acessíveis e arquivos não executáveis. chmod g=u shared/ dá ao grupo os mesmos direitos do dono.

Padrões seguros por caso de uso

• Arquivos da raiz web: 644, diretórios 755, pertencentes ao seu usuário de deploy; diretório de uploads pertencente ao usuário do servidor web, 755.

• Segredos (.env, chaves privadas, credenciais): 600, pertencentes ao usuário do serviço que os lê.

• Scripts de shell num repositório: 755. O Git guarda só o bit de execução, como modo de arquivo 100755 ou 100644; no Windows, defina-o com git update-index --chmod=+x.

• Diretório compartilhado de equipe: 2775 com um grupo comum, para que novos arquivos herdem o grupo.

• A sua umask define o ponto de partida: com a comum 022, novos arquivos recebem 644 e diretórios 755; com 077, 600 e 700.

Ferramentas grátis relacionadas

  • Calculadora de sub-rede — Rede, broadcast, faixa de hosts e máscara para qualquer CIDR; divida redes com VLSM, expanda IPv6 e encontre faixas sobrepostas.
  • Gerador de .gitignore — Combine modelos de .gitignore para linguagens, frameworks, editores e sistemas operacionais em um único arquivo limpo.
  • Gerador de expressões cron — Monte um agendamento cron com menus ou cole um pronto, leia-o em português e veja as próximas 10 execuções no seu fuso e em UTC. Grátis, no navegador.
  • Docker Run ⇄ Compose — Transforme um comando docker run num serviço do docker-compose.yml, ou um serviço do Compose de volta em docker run.