Calculadora de chmod
Permissões de arquivos Unix em octal e rwx, nos dois sentidos.
Sobre esta ferramenta
Marque ler, escrever e executar para proprietário, grupo e outros para obter o modo octal e o comando chmod, ou digite um modo como 755 ou rwxr-xr-x para ver o que ele permite. Inclui setuid, setgid e o sticky bit.
Como usar
- Digite um modo como 755, 0644 ou rwxr-xr-x, ou cole a primeira coluna do ls -l.
- Ou marque ler, escrever e executar para o proprietário, o grupo e todos os outros.
- Adicione setuid, setgid ou o sticky bit se precisar deles.
- Digite o nome do arquivo e copie o comando chmod.
Perguntas
- O que significa chmod 755?
- O proprietário pode ler, escrever e executar; o grupo e todos os demais podem ler e executar. É o modo usual para scripts, programas e pastas.
- Qual é a diferença entre 644 e 755?
- 644 (rw-r--r--) é para arquivos comuns: só o proprietário pode alterá-los e ninguém pode executá-los. 755 adiciona a permissão de execução, que programas precisam para rodar e pastas precisam para que as pessoas possam abri-las.
- Por que a minha chave SSH precisa de 600?
- O SSH recusa chaves privadas que outros usuários conseguem ler. 600 significa que só você pode ler e escrever o arquivo, que é exatamente o que ele verifica.
- chmod 777 é uma boa ideia em algum caso?
- Raramente. Ele permite que qualquer usuário da máquina altere ou substitua o arquivo. Quando algo só funciona com 777, a correção certa geralmente é o proprietário (chown) ou o grupo corretos, não permissões mais amplas.
- O que significam as letras s e t?
- Um s na posição do proprietário ou do grupo é setuid ou setgid: o programa roda com os direitos do proprietário ou do grupo do arquivo, ou novos arquivos em uma pasta herdam o grupo dela. O t é o sticky bit: em uma pasta compartilhada como /tmp, cada pessoa só pode excluir os próprios arquivos.
- Por que o chmod diz “Operation not permitted”?
- Só o proprietário do arquivo ou o root podem mudar o modo dele, então use sudo ou corrija antes o proprietário com chown. Em FAT, exFAT e muitos compartilhamentos de rede, as permissões nem são armazenadas e vêm das opções de montagem. No Linux, um arquivo marcado como imutável com chattr +i também recusa o chmod até a flag ser removida.
- O Git guarda as permissões dos arquivos?
- Só o bit de execução. O Git registra um arquivo como 100644 ou 100755 e ignora todo o resto, incluindo grupo e outros. Para marcar um script como executável no Windows, rode git update-index --chmod=+x script.sh. Se o Git apontar mudanças de modo que você não fez, por exemplo em um drive compartilhado, defina core.fileMode como false nesse repositório.
- Qual é a diferença entre chmod e chown?
- O chmod muda o que o proprietário, o grupo e os outros podem fazer com um arquivo. O chown muda quem são o proprietário e o grupo, como em sudo chown www-data:www-data uploads. Quando um serviço não consegue gravar em algum lugar, passar a pasta para o usuário ou o grupo do serviço é mais seguro do que ampliar o modo para todo mundo.
Como funcionam os números do chmod?
Cada permissão tem um valor: leitura é 4, escrita é 2 e execução é 1. Some-os para obter um dígito, então 7 significa rwx, 6 significa rw- e 5 significa r-x. Um modo tem três dígitos, para o proprietário, o grupo e todos os outros, nessa ordem. É por isso que chmod 640 dá ao proprietário leitura e escrita, ao grupo só leitura e aos outros nada. O Conversor de bases numéricas mostra cada dígito como três bits binários.
Um quarto dígito na frente define os bits especiais: 4 para setuid, 2 para setgid e 1 para o sticky bit, então chmod 2775 é 775 mais setgid. Na primeira coluna do ls -l, o primeiro caractere é o tipo de arquivo (d para uma pasta, l para um link simbólico, - para um arquivo comum), seguido de nove letras de permissão. Um S ou T maiúsculo significa que o bit especial está ativo, mas a execução não, o que geralmente é um erro.
Números ou letras no chmod (modo simbólico)
Os números sempre definem os nove bits de uma vez: chmod 644 file substitui o que estava lá. As letras podem mudar uma coisa e manter o resto. chmod u+x deploy.sh adiciona execução para o proprietário, chmod go-w file remove a escrita para o grupo e os outros, e = define uma lista exata, como em chmod o= secret.txt. Cada resultado aqui aparece das duas formas, por exemplo chmod 755 file e chmod u=rwx,g=rx,o=rx file.
Quando você omite u, g, o ou a, o chmod aplica a mudança a todos, mas pula os bits bloqueados pela sua umask. A umask também decide o modo dos arquivos novos: com a umask comum 022, arquivos novos ficam com 644 e pastas novas com 755. Rode umask para ver a sua. Se colegas de equipe vivem criando arquivos que o grupo não consegue editar, uma umask 002 geralmente é a solução, e não um chmod -R depois.
Como aplicar chmod de forma diferente em pastas e arquivos
chmod -R 755 dir torna todos os arquivos executáveis, o que raramente é o que você quer. Use um X maiúsculo: chmod -R u=rwX,go=rX dir dá execução só às pastas e aos arquivos que já eram executáveis. Para ter exatamente pastas 755 e arquivos 644, faça duas passadas: find dir -type d -print0 | xargs -0 chmod 755, e depois o mesmo com -type f e 644.
Um “Permission denied” em um arquivo que parece legível geralmente vem de uma pasta acima dele. Para abrir um caminho, você precisa de permissão de execução em cada pasta ao longo dele, e de permissão de leitura para listar o conteúdo de uma pasta. Um arquivo 644 dentro de uma pasta 700 continua privado ao proprietário. No Linux, namei -l /path/to/file imprime o modo de cada parte do caminho, para você achar a pasta que bloqueia o acesso.
Permissões chmod comuns
Os modos que você mais vai encontrar, o que cada um permite e onde é usado.
| Modo | rwx | Quem pode fazer o quê | Uso típico |
|---|---|---|---|
chmod 755 | rwxr-xr-x | O proprietário pode ler, escrever e executar. O grupo pode ler e executar. Os outros podem ler e executar. | Scripts, programas e pastas que outras pessoas podem abrir |
chmod 644 | rw-r--r-- | O proprietário pode ler e escrever. O grupo pode ler. Os outros podem ler. | Arquivos comuns: todos podem ler, só você pode editar |
chmod 600 | rw------- | O proprietário pode ler e escrever. O grupo não pode fazer nada. Os outros não podem fazer nada. | Arquivos privados, como chaves SSH e arquivos .env |
chmod 700 | rwx------ | O proprietário pode ler, escrever e executar. O grupo não pode fazer nada. Os outros não podem fazer nada. | Pastas privadas e scripts que só você pode executar |
chmod 775 | rwxrwxr-x | O proprietário pode ler, escrever e executar. O grupo pode ler, escrever e executar. Os outros podem ler e executar. | Pastas em que um grupo trabalha em conjunto |
chmod 664 | rw-rw-r-- | O proprietário pode ler e escrever. O grupo pode ler e escrever. Os outros podem ler. | Arquivos que um grupo edita em conjunto |
chmod 750 | rwxr-x--- | O proprietário pode ler, escrever e executar. O grupo pode ler e executar. Os outros não podem fazer nada. | Programas e pastas só para você e seu grupo |
chmod 640 | rw-r----- | O proprietário pode ler e escrever. O grupo pode ler. Os outros não podem fazer nada. | Arquivos de configuração que o grupo de um serviço pode ler |
chmod 444 | r--r--r-- | O proprietário pode ler. O grupo pode ler. Os outros podem ler. | Arquivos somente leitura que ninguém deve alterar |
chmod 777 | rwxrwxrwx | O proprietário pode ler, escrever e executar. O grupo pode ler, escrever e executar. Os outros podem ler, escrever e executar. | Todos podem fazer tudo: evite fora de testes descartáveis |
Algo não está funcionando ou um resultado parece errado? Relatar um problema com esta ferramenta