Você estava seguindo um tutorial, tudo ia bem, até aparecer aquela linha: chmod 755 arquivo. Você digitou, funcionou, mas ficou aquela pergunta no ar: o que diabos é 755? De onde saiu esse número? E por que às vezes é 644, outras 600, e aquele temido 777 que todo mundo manda não usar?
A boa notícia é que esses números não são mágica nem decoreba. Existe uma lógica simples por trás, e quando você entende, nunca mais precisa copiar e colar sem saber o que está fazendo. Vamos decodificar.
As três perguntas: quem e o quê
Toda permissão no Linux responde a duas perguntas: quem pode mexer no arquivo e o quê essa pessoa pode fazer.
O quem se divide em três grupos:
- Dono (user): quem criou ou é responsável pelo arquivo.
- Grupo (group): outros usuários que pertencem ao mesmo grupo do arquivo.
- Outros (others): todo o resto, qualquer um no sistema.
E o o quê também são três ações:
- Ler (read): abrir e ver o conteúdo do arquivo (ou listar uma pasta).
- Escrever (write): alterar, salvar ou apagar o arquivo.
- Executar (execute): rodar o arquivo como programa (ou entrar numa pasta).
Então, quando você define uma permissão, está dizendo: para cada um dos três grupos (dono, grupo, outros), o que ele pode fazer com as três ações (ler, escrever, executar). É isso. Nada mais.
O truque dos números
Agora a parte que trava todo mundo: por que 755 e não "dono pode ler e escrever"? Porque o Linux usa números para resumir as três ações. Cada ação tem um valor fixo:
- Ler = 4
- Escrever = 2
- Executar = 1
O segredo é: você soma os valores das permissões que quer liberar. Quer que alguém possa ler e escrever? 4 + 2 = 6. Quer ler, escrever e executar (tudo liberado)? 4 + 2 + 1 = 7. Quer só ler e executar? 4 + 1 = 5.
Como são três grupos (dono, grupo, outros), o número do chmod tem três dígitos, um para cada grupo, nessa ordem. Em chmod 755, o primeiro 7 é o dono, o segundo 5 é o grupo, o terceiro 5 são os outros. Traduzindo: o dono tem tudo (7 = 4+2+1), o grupo lê e executa (5 = 4+1), os outros também leem e executam (5 = 4+1).
Decodificando na prática
Com a soma na mão, dá para ler qualquer número. Veja os mais comuns:
- 755: dono faz tudo (7); grupo e outros leem e executam (5 e 5). Típico de programas e pastas que todos podem acessar, mas só o dono altera.
- 644: dono lê e escreve (6 = 4+2); grupo e outros só leem (4 e 4). O padrão para arquivos comuns, como páginas e documentos.
- 600: dono lê e escreve (6); grupo e outros não têm nada (0 e 0). Arquivo privado, só o dono enxerga.
- 777: todo mundo faz tudo (7, 7, 7). Dono, grupo e outros podem ler, escrever e executar sem restrição.
Repare que o 0 significa "nenhuma permissão" para aquele grupo. É assim que você fecha o acesso de quem não deveria mexer.
Receitas comuns
Na prática, você raramente inventa números. Existem combinações que resolvem quase tudo:
- 644 para arquivos: use em HTML, imagens, PDFs, arquivos de configuração que não precisam ser executados. O dono edita, o resto só lê. Exemplo:
chmod 644 index.html. - 755 para pastas e scripts: pastas precisam do "executar" para serem acessadas, e scripts precisam para rodar. Exemplo:
chmod 755 deploy.sh. - 600 para segredos: chaves SSH, arquivos de senha, tokens. Ninguém além do dono deve ler. Exemplo:
chmod 600 id_rsa(o SSH até se recusa a funcionar se a chave estiver aberta demais).
Um alerta rápido sobre o 777: ele libera tudo para todo mundo, inclusive escrever e executar. Pode parecer que "resolve" um erro de permissão, mas é como deixar a porta de casa escancarada para resolver o problema de ter esquecido a chave. Em servidor exposto à internet, é um convite para invasão. Quase nunca é a resposta certa, então evite jogar 777 só para "fazer funcionar".
Agora é automático
Uma vez que você entende que é só somar 4, 2 e 1 para cada um dos três grupos, o chmod deixa de ser um feitiço e vira uma conta de cabeça. Mas se quiser conferir ou montar a permissão sem errar a soma, use a nossa calculadora chmod: você marca as caixinhas de ler, escrever e executar e ela te devolve o número pronto para colar no terminal.