Calculadora de chmod: permissões do Linux

Converta chmod nos dois sentidos: digite 755 e veja rwxr-xr-x, ou cole o modo do ls -l e receba o octal. A tela diz o que cada dígito permite em arquivo e em diretório, com setuid, setgid e sticky.

Revisão técnica: Cesar Gargiulo (segurança da informação)
Valim, o mascote do ValorFinal, representando a categoria Tecnologia

A conversão acontece no seu navegador. Nenhum caminho de arquivo, nome de servidor ou permissão sai do seu computador.

Estou mexendo em

Em diretório, x não executa nada: é a permissão de entrar. E r é a de listar os nomes.

Aceita 3 dígitos e 4 com os bits especiais (4755, 2775, 1777).

Cole a coluna do ls -l, com ou sem a letra do tipo na frente.

Permissões por dono, grupo e outros
QuemLer (r)Escrever (w)Executar (x)
Donoo usuário que é dono do arquivo
Grupoquem pertence ao grupo do arquivo
Outrostodo o resto da máquina
Bits especiais (o quarto dígito)
Modos comuns:

Modo do arquivo

755

rwxr-xr-x

chmod 755 arquivo.sh

O que esse modo permite em um arquivo

QuemDígitoLetrasNa prática
Dono7rwxLer, escrever e executar.
Grupo5r-xLer e executar.
Outros5r-xLer e executar.

O que cada dígito de 0 a 7 significa

Todo dígito do chmod é a soma de três valores fixos: 4 para ler, 2 para escrever e 1 para executar. Por isso 7 é 4 mais 2 mais 1, 6 é 4 mais 2 e 5 é 4 mais 1. A coluna da direita existe porque as mesmas letras fazem coisas diferentes em um diretório.

DígitoLetrasEm um arquivoEm um diretório
0---Nenhum acesso.Nenhum acesso.
1--xSó executar.Só entrar (cd), sem poder listar.
2-w-Só escrever.Inútil sozinho: criar exige entrar também.
3-wxEscrever e executar.Entrar, criar e apagar, sem ver a lista.
4r--Só ler.Só listar os nomes, sem abrir o que está dentro.
5r-xLer e executar.Listar e entrar. É o mínimo para navegar.
6rw-Ler e escrever.Listar e criar, mas sem conseguir entrar.
7rwxLer, escrever e executar.Listar, entrar, criar e apagar.

O modo completo tem três dígitos, um para o dono, um para o grupo e um para os outros, nessa ordem. Um quarto dígito na frente liga os bits especiais.

Onde nasce a maioria dos "permission denied"

Quase todo problema de permissão que parece inexplicável vem da mesma confusão: tratar diretório como se fosse arquivo. O bit x em um arquivo autoriza rodá-lo. Em um diretório, ele não roda nada: autoriza atravessar aquele diretório. Sem x, o sistema nem chega aos arquivos de dentro, por melhores que sejam as permissões deles.

chmod 644 pasta/

O ls funciona e mostra os nomes, mas abrir qualquer arquivo de dentro falha. Falta o x, que é a permissão de entrar. É o erro mais comum de quem aplicou o modo de arquivo numa pasta em massa.

chmod 711 pasta/

O contrário: ninguém lista o que existe ali, mas quem já sabe o caminho exato consegue abrir. É o modo de um diretório home de usuário em servidor compartilhado, e de pastas que servem arquivo por URL conhecida.

Na hora de aplicar em massa, isso vira uma regra prática: nunca use o mesmo modo para os dois. O par que resolve quase todo site é 755 nas pastas e 644 nos arquivos, separando por tipo com find . -type d -exec chmod 755 {} + e find . -type f -exec chmod 644 {} +.

O chmod define quem pode ler, escrever e executar um arquivo ou diretório, separando dono, grupo e todos os outros. Cada um desses três vira um dígito de 0 a 7, somando 4 para ler, 2 para escrever e 1 para executar. É por isso que 755 significa rwxr-xr-x e 644 significa rw-r--r--.

Como funciona o chmod

A conversão é aritmética simples, sem ambiguidade. As três permissões de cada grupo são bits: ler vale 4, escrever vale 2 e executar vale 1. Somando os que estão ligados, sai um número de 0 a 7, e os três números na ordem dono, grupo, outros formam o modo. Um quarto dígito opcional na frente carrega os bits especiais, com a mesma lógica: setuid vale 4, setgid vale 2 e sticky vale 1.

A conversão inversa é a mesma conta lida ao contrário: o modo simbólico do ls -l tem nove letras, três por grupo, e cada grupo vira um dígito. Nos bits especiais, a letra ocupa a casa do x, aparecendo minúscula quando o x também está ligado e maiúscula quando não está.

A permissão efetiva ainda depende do dono e do grupo do arquivo, que o chmod não muda. Para redes e servidores, veja também a calculadora de sub-rede IPv4, e para conferir a integridade de um arquivo baixado, a verificação de hash de arquivo. A suíte com ARN da AWS e hash de arquivo está em ferramentas DevOps.

Método

dígito = (r ? 4 : 0) + (w ? 2 : 0) + (x ? 1 : 0)

modo = dígito(dono) dígito(grupo) dígito(outros)

especial = (setuid ? 4 : 0) + (setgid ? 2 : 0) + (sticky ? 1 : 0)

Base: The Open Group Base Specifications (utilitário chmod e chamada chmod) e o manual do GNU Coreutils. A conversão é determinística e roda no seu navegador.

Limitações

  • O chmod não muda quem é o dono nem o grupo do arquivo. Quando o acesso continua negado com o modo certo, o que falta costuma ser chown ou chgrp.
  • O modo efetivo de um arquivo recém-criado ainda passa pelo umask do sistema, que subtrai permissões. A conta desta página é a do modo aplicado, não a do padrão de criação.
  • Listas de controle de acesso (ACL, via setfacl), atributos estendidos, chattr, SELinux e AppArmor podem permitir ou negar acesso por cima do modo. Em sistema com essas camadas ligadas, o chmod é só uma parte da resposta.
  • Sistemas de arquivos montados de Windows ou de rede (NTFS, exFAT, FAT, algumas montagens de CIFS) não guardam o modo POSIX: o valor exibido vem da opção de montagem e o chmod não tem efeito real ali.

Guia completo

chmod no Linux: permissões rwx e os números 755, 644 e 600

Aprenda como funcionam as permissões no Linux com chmod, o que significam r, w e x para owner, group e others, como ler a notação octal e quando usar valores como 755, 644 e 600, com os cuidados do 777.

Calculadoras relacionadas

ValorFinal VIP: Sem anúncios, até 500 cenários salvos e comparação de cenários lado a lado.

Ferramenta transparente, com o método explicado

Atualizado em . Fontes: The Open Group Base Specifications (chmod) / GNU Coreutils.

Processamento local: esta ferramenta roda no seu navegador e nada é enviado a servidores automaticamente.

Como validamos

Referências técnicas

Links externos para o que foi consultado na construção desta página, com a natureza de cada fonte identificada. O conteúdo delas pode mudar sem aviso; em caso de divergência, vale sempre a fonte primária.

Perguntas frequentes

O que significa chmod 755?

755 dá permissão total ao dono (ler, escrever e executar) e permissão de leitura e execução ao grupo e a todos os outros usuários. É o modo típico de um script executável e de um diretório que precisa ser navegado por qualquer pessoa. Em letras, 755 é rwxr-xr-x: o 7 do dono vale 4 mais 2 mais 1, e cada 5 vale 4 mais 1.

O que significa chmod 644?

644 é o modo comum de arquivo que não precisa ser executado: o dono lê e escreve, e grupo e outros apenas leem. Em letras, rw-r--r--. É o que se usa em página HTML, imagem, arquivo de configuração público e documento. Aplicar 644 em um script faz o script parar de rodar, porque falta o bit de execução; aplicar 644 em um diretório impede entrar nele.

Por que 777 é perigoso?

777 libera leitura, escrita e execução para qualquer usuário da máquina. Na prática, qualquer processo comprometido, qualquer conta de serviço e qualquer pessoa com acesso ao servidor pode reescrever o conteúdo, inclusive trocando um script por outro que será executado depois. Em servidor web compartilhado, é a receita clássica de arquivo modificado sem ninguém saber como. Quando algo só funciona com 777, o problema real quase sempre é o dono ou o grupo errado, e a correção é chown ou chgrp, não abrir tudo.

Qual a diferença entre permissão de arquivo e de diretório?

As mesmas três letras significam coisas diferentes. Em arquivo, r é ler o conteúdo, w é alterar e x é executar. Em diretório, r é listar os nomes de dentro, w é criar e apagar entradas, e x é entrar, ou seja, atravessar o caminho para chegar ao que está lá dentro. É por isso que um diretório sem x devolve permission denied mesmo quando o arquivo lá dentro está com 644: ninguém consegue chegar até ele.

Como converter chmod simbólico para octal?

Cada grupo de três letras vira um dígito somando 4 para r, 2 para w e 1 para x. Em rwxr-xr-x, o primeiro grupo rwx soma 4 mais 2 mais 1, que é 7; os dois grupos r-x somam 4 mais 1, que é 5. O resultado é 755. Nesta página dá para fazer o caminho inverso também: cole a coluna do ls -l e o octal aparece pronto.

O que são setuid, setgid e sticky?

São os três bits do quarto dígito. Setuid (4) faz o programa rodar com os privilégios do dono do arquivo, e não de quem executou; é o mecanismo por trás do passwd e do sudo. Setgid (2) faz o mesmo com o grupo e, aplicado a um diretório, faz tudo que for criado dentro herdar o grupo da pasta. Sticky (1) em diretório com escrita liberada impede que um usuário apague arquivo de outro: é o que o /tmp usa, por isso 1777 e não 777.

Por que o ls mostra S maiúsculo em vez de s?

O bit especial ocupa a mesma casa do x no modo simbólico. Quando o x também está ligado, a letra sai minúscula (s ou t). Quando o x está desligado, ela sai maiúscula (S ou T), e isso é um aviso: o bit foi pedido, mas não tem efeito prático ali, porque não há execução para acontecer com privilégio diferente.