Desenvolvedores

Chmod 755, 644, 777: Como Entender e Calcular Permissões no Linux

8 min de leitura

Chmod 755 significa que o dono do arquivo pode ler, escrever e executar, enquanto grupo e outros usuários só podem ler e executar. É a permissão típica de um script ou de uma pasta pública. Cada dígito octal (7, 5, 5) é a soma de três valores fixos: leitura vale 4, escrita vale 2, execução vale 1, e cada um dos três grupos (dono, grupo, outros) recebe um dígito só seu.

Como o dígito octal é montado

O sistema Unix guarda permissões em três classes: dono do arquivo, grupo do arquivo e todos os outros usuários. Para cada classe existem três permissões possíveis, e cada uma tem um peso fixo:

  • Leitura (r) = 4
  • Escrita (w) = 2
  • Execução (x) = 1

O dígito de cada classe é simplesmente a soma dos pesos que ela tem. Um dono com leitura, escrita e execução soma 4+2+1 = 7. Um grupo só com leitura e execução soma 4+1 = 5. Uma classe sem nenhuma permissão fica em 0. Junte os três dígitos, um para dono, um para grupo, um para outros, e você tem o número que o chmod recebe, como 750 ou 644.

Vale notar que essa soma nunca é ambígua: não existe combinação de 4, 2 e 1 que produza o mesmo total de duas formas diferentes, então cada dígito de 0 a 7 mapeia para exatamente uma combinação de rwx.

Tabela de permissões mais usadas

ComandoOctalSimbólicoUso típico
chmod 600 arquivo600rw-------Chave privada SSH (id_rsa), arquivo .env ou de segredos
chmod 644 arquivo644rw-r—r—Arquivo comum (HTML, config, log), dono edita, todos leem
chmod 700 pasta700rwx------Pasta privada que só o dono consegue acessar
chmod 755 script.sh755rwxr-xr-xScript ou diretório público, dono edita, todos executam/acessam
chmod 775 pasta775rwxrwxr-xDiretório compartilhado por uma equipe, dono e grupo escrevem
chmod 777 arquivo777rwxrwxrwxTodos podem ler, escrever e executar, evite, é risco de segurança

Um detalhe que confunde bastante gente: para pastas, o significado dos bits muda de foco. O bit de execução numa pasta é o que permite entrar nela com cd, e o bit de leitura é o que permite listar o conteúdo com ls. Uma pasta com leitura mas sem execução deixa alguns programas listarem os nomes dos arquivos lá dentro, mas você não consegue entrar nela com cd nem consultar detalhes (stat) desses arquivos. É por isso que uma pasta “só de leitura” quase sempre também precisa do bit de execução para ser realmente utilizável.

Os dois tipos de “simbólico” no chmod

Existe uma confusão comum entre duas coisas que as pessoas chamam de “simbólico” no contexto de chmod, e vale separar bem:

A string de exibição do ls -l, como rwxr-xr-x, é a que a calculadora abaixo mostra. Ela é uma fotografia absoluta e completa do estado atual: dez posições, sendo a primeira o tipo de arquivo (- para arquivo comum, d para diretório) e as nove seguintes agrupadas em três blocos de rwx, um para dono, um para grupo, um para outros.

A sintaxe simbólica do próprio comando chmod é outra coisa: é uma forma relativa de alterar permissões, sem precisar saber o octal completo. Alguns exemplos:

  • chmod u+x arquivo.sh adiciona execução só para o dono (u de user)
  • chmod go-w arquivo remove escrita de grupo (g) e outros (o)
  • chmod a+r arquivo adiciona leitura para todo mundo (a de all)

Essa forma é útil quando você quer mudar só uma permissão sem recalcular o número octal inteiro. Mas o resultado final, depois de aplicada, sempre pode ser lido de volta como aquela mesma string de dez posições do ls -l.

Teste com suas próprias permissões

Digite um número octal ou monte a combinação de rwx e veja o comando chmod pronto para copiar.

LerEscreverExecutar
Proprietário
Grupo
Outros
Calculadora Chmod
Grátis, sem cadastro, funciona em qualquer dispositivo.
Abrir a ferramenta completa

Por que arquivos novos já nascem com 644

Ninguém precisa rodar chmod manualmente na maioria dos arquivos porque o sistema já aplica um padrão sensato na criação. Arquivos novos partem de uma base 666 (rw-rw-rw-, sem execução por padrão, por segurança), e diretórios novos partem de 777 (rwxrwxrwx). Desses valores base, o shell subtrai o umask, um valor configurado no sistema que restringe permissões automaticamente.

Na maioria das distribuições Linux, o umask padrão é 022. Fazendo a conta: 666 menos 022 dá 644, e 777 menos 022 dá 755. É exatamente por isso que todo arquivo que você cria do zero acaba em 644 e toda pasta nova acaba em 755, sem que ninguém tenha digitado um chmod. O umask é o motivo, não um acaso.

Erros comuns e riscos de segurança

Usar chmod 777 “para resolver logo”. É a gambiarra mais comum e mais perigosa: 777 libera leitura, escrita e execução para qualquer usuário do sistema, incluindo um invasor que já conseguiu algum acesso à máquina. Um upload de arquivo mal validado combinado com uma pasta 777 é um caminho clássico para um invasor colocar um webshell e executar código arbitrário no servidor. Ferramentas de auditoria de segurança (as que rodam em hospedagens WordPress, por exemplo) sinalizam 777 como achado crítico quase sempre. O ajuste correto quase sempre é 755 para executáveis e diretórios, 644 para arquivos comuns, e apertando ainda mais para 750 ou 640 quando existe um grupo confiável envolvido.

Deixar a chave SSH privada legível por outros. O ssh-keygen já cria a chave privada com 600 por padrão, e isso não é aleatório: o próprio OpenSSH se recusa a usar uma chave privada que esteja legível por grupo ou por outros, e mostra um erro parecido com este:

Permissions 0644 for 'id_rsa' are too open

seguido de um aviso ainda mais direto, UNPROTECTED PRIVATE KEY FILE!. Se você mover uma chave id_rsa entre máquinas, copiar de um zip ou restaurar de um backup, é comum que ela perca a permissão 600 no processo, e o SSH vai recusar a conexão até você rodar chmod 600 id_rsa de novo.

O que esta calculadora não cobre

Além dos três dígitos padrão (dono, grupo, outros), o Unix tem um quarto dígito opcional, que vem na frente do octal e cobre permissões especiais: setuid (4000), setgid (2000) e sticky bit (1000), como em chmod 4755 ou chmod 1777. A calculadora acima trabalha só com o conjunto padrão de três dígitos, não modela esse quarto dígito. Em resumo, para contexto: setuid faz um binário rodar com o privilégio do dono do arquivo (é assim que /usr/bin/passwd consegue alterar um arquivo de senhas que só o root deveria escrever), e o sticky bit numa pasta com escrita liberada para todos, como /tmp, impede que um usuário apague arquivos de outro usuário ali dentro.

Perguntas frequentes

O que significa chmod 755? Significa que o dono do arquivo tem leitura, escrita e execução (7 = 4+2+1), enquanto grupo e outros usuários têm apenas leitura e execução (5 = 4+1, sem o 2 de escrita). É a permissão padrão de scripts públicos e diretórios que qualquer um pode acessar, mas só o dono pode alterar.

Qual a diferença entre chmod 644 e chmod 664? Em 644, só o dono tem permissão de escrita (o grupo e outros só leem). Em 664, o dono e o grupo têm escrita, e só outros usuários ficam restritos à leitura. A diferença é exatamente esse segundo dígito, 4 (só leitura) contra 6 (leitura e escrita) para o grupo.

Por que minha pasta com permissão de leitura não deixa eu entrar com cd? Porque leitura e execução fazem coisas diferentes numa pasta. Leitura permite listar os nomes dos arquivos dentro dela, execução é o que permite efetivamente entrar com cd e acessar os arquivos individualmente. Uma pasta comum e utilizável quase sempre precisa das duas, não só da leitura.

Por que chmod 777 é considerado perigoso? Porque libera leitura, escrita e execução para todo usuário do sistema, sem exceção. Isso inclui qualquer processo ou invasor que tenha conseguido qualquer nível de acesso à máquina, que passa a poder substituir o conteúdo do arquivo livremente. É por isso que scanners de segurança de hospedagem apontam 777 como problema crítico, e o ajuste recomendado quase sempre é 755 ou 644, dependendo se é executável/pasta ou arquivo comum.

Esta calculadora cobre setuid, setgid e sticky bit? Não. Ela trabalha com o conjunto padrão de três dígitos (dono, grupo, outros). O quarto dígito opcional, que cobre setuid, setgid e sticky bit, é um recurso mais avançado e específico, fora do escopo desta ferramenta.

ChmodPermissões UnixLinuxServidores
Calculadora Chmod
Agora experimente você mesmo na ferramenta completa.
Experimentar agora