Pular para o conteúdo

chmod 777: o que significa e quando usar

Roda no seu navegador — nada do que você cola sai desta página. Como comprovamos isso

Playground da calculadora chmod

Examples
Permission bits
Read
Write
Exec
Owner
Group
Other
Enter a value

The matrix, octal and symbolic fields all stay in sync — edit any one and the others follow.

Results update as you type — press Enter to run now.

fig. 29 — chmod-calculator · utilities 777 · rwxrwxrwx · file
Output
Octal777
Symbolicrwxrwxrwx
ls -l-rwxrwxrwx
Commandchmod 777 file

`chmod 777 file` define o modo `rwxrwxrwx`: qualquer usuário do sistema pode ler, modificar e executar o arquivo. Quase nunca é a correção certa; o valor mais seguro costuma ser 755 ou 644.

O que chmod 777 significa

Em 777 o primeiro dígito é o dono, o segundo o grupo e o terceiro todos os outros. Dono: leitura, escrita e execução; grupo: leitura, escrita e execução; outros: leitura, escrita e execução.

O ls -l mostra o modo como -rwxrwxrwx. Cada 7 é 4 + 2 + 1 — leitura mais escrita mais execução — então nenhuma classe fica de fora. Em um diretório, os mesmos bits permitem que qualquer conta o liste, entre nele e crie, renomeie ou apague entradas lá dentro, inclusive arquivos que pertencem a outra pessoa.

Por que 777 é um problema de segurança

Um arquivo gravável por todos pode ser substituído por qualquer processo local, incluindo um servidor web comprometido rodando como www-data ou nginx. Se esse arquivo for um script executado pelo cron ou por um hook de deploy, quem consegue gravá-lo consegue rodar código com a conta que o executa. Um diretório gravável por todos deixa qualquer usuário colocar arquivos em um caminho no qual outro programa confia.

Áreas compartilhadas como /tmp são graváveis por todos de propósito, mas com o modo 1777, não 777: o sticky bit extra faz com que cada usuário só possa apagar os próprios arquivos. Um diretório 777 puro não tem essa proteção.

Quando as pessoas recorrem a ele e o que fazer em vez disso

O 777 costuma aparecer depois de um "permission denied" de uma aplicação web ou de um volume de contêiner. A causa real quase sempre é a propriedade: o processo roda com um usuário diferente do dono dos arquivos. Corrija com chown para a conta do serviço, ou colocando essa conta no grupo do arquivo e dando escrita ao grupo, em vez de abrir o arquivo para todo mundo.

Para código e diretórios que um servidor só precisa ler, a dupla convencional é 755 para diretórios e 644 para arquivos. Um chmod -R 777 recursivo também torna todo arquivo executável; conserte por tipo com find dir -type d -exec chmod 755 {} + e find dir -type f -exec chmod 644 {} +.

FAQ

Suas perguntas, respondidas.

Toque em uma pergunta para expandir a resposta.

Raramente, e só em uma máquina descartável de um único usuário. Para uma área compartilhada use 1777, assim o sticky bit impede que usuários apaguem arquivos alheios. Em um servidor ou em uma imagem de contêiner, corrija a propriedade.

Sim. As três classes recebem o bit de execução, então qualquer usuário pode rodar o arquivo como programa se ele for um binário válido ou um script com linha shebang. É mais um motivo para não aplicá-lo a uma árvore inteira.

More free, private DevOps tools.

A chmod Calculator é uma das ferramentas do OpsCanopy — um dossel crescente de validadores, conversores e testadores baseados no navegador que nunca tocam um servidor.

42 ferramentas gratuitas, todas capazes de funcionar offline — o opscanopy.com não exige cadastro e não envia nada.

Ferramentas relacionadas: o Gerador UUID / ULID, o Conversor de maiúsculas e a ferramenta Slugify, ou o Conversor de CVE Ignore — ou explore o diretório de ferramentas completo.

Fornecido como está para sua conveniência; sempre confira duas vezes as mudanças de permissão em sistemas de produção. OpsCanopy é gratuito e aberto.