chmod 644
chmod 644 define rw-r--r--: o dono pode ler e alterar o arquivo, o grupo e os demais só podem ler, e ninguém executa.
Matriz de permissões
| Quem | Leitura (4) | Escrita (2) | Execução (1) | Dígito |
|---|---|---|---|---|
| Dono (u) | Sim | Sim | Não | 6 |
| Grupo (g) | Sim | Não | Não | 4 |
| Outros (o) | Sim | Não | Não | 4 |
Execução muda de sentido conforme o tipo. Num arquivo, deixa o kernel rodá-lo como programa. Num diretório, é a permissão de busca: entrar (cd) e alcançar os arquivos de dentro pelo nome. Leitura num diretório só lista os nomes.
| Quem | Num arquivo | Num diretório |
|---|---|---|
| Dono (u) | Ler e alterar | Só listar nomes; a escrita não vale sem execução |
| Grupo (g) | Ler o conteúdo | Só listar nomes; não entra nem abre nada |
| Outros (o) | Ler o conteúdo | Só listar nomes; não entra nem abre nada |
Dados
| Octal | 644 (0644) |
|---|---|
| Simbólico | rw-r--r-- |
| ls -l, arquivo | -rw-r--r-- |
| ls -l, diretório | drw-r--r-- |
| Comando simbólico equivalente | chmod u=rw,go=r |
| umask padrão que gera esse modo | umask 022 para arquivos novos |
| Como o Git registra um arquivo assim | 100644 (não executável) |
| Bits especiais | Nenhum |
Quando usar
- Conteúdo web e arquivos comuns: o guia do WordPress diz que todos os arquivos devem ser 644 ou 640, e o .htaccess normalmente é 644.
- Arquivos do sistema que todos precisam ler mas ninguém pode alterar, como /etc/passwd e /etc/hosts.
- Chaves públicas (id_ed25519.pub). Também é o modo dos arquivos novos com o umask comum 022.
Quando não usar
- Chaves privadas do SSH. O ssh recusa com WARNING: UNPROTECTED PRIVATE KEY FILE! e Permissions 0644 for ... are too open, e ignora a chave. Use 600 ou 400.
- Arquivos com senhas ou chaves de API em servidores compartilhados, como wp-config.php ou .env. O WordPress recomenda 440 ou 400 para o wp-config.php; 640 ou 600 servem para o .env.
- Scripts e binários que você precisa executar: eles precisam do bit de execução, então use 755.
Comandos
chmod 644 index.html
chmod u=rw,go=r index.html # mesmo resultadostat -c '%a %A %n' index.html # Linux (stat do GNU): 644 -rw-r--r--
stat -f '%Lp %Sp %N' index.html # macOS e BSDAplicando numa árvore inteira
O chmod -R colocaria o mesmo modo em arquivos e diretórios. Defina os diretórios como 755 e os arquivos como 644 separadamente:
find . -type d -exec chmod 755 {} +
find . -type f -exec chmod 644 {} +Ou numa passada só com o X maiúsculo, que só dá execução a diretórios e a arquivos que já tinham: chmod -R u=rwX,go=rX ..
Git e o bit de execução
O Git guarda um único dado de permissão por arquivo: 100755 se o bit de execução do dono estiver ligado, 100644 caso contrário. Um arquivo com este modo entra no commit como 100644; os bits de grupo e outros nunca chegam ao repositório. No Windows, ou com core.fileMode false, ligue o bit com git update-index --chmod=+x.
Perguntas frequentes
- O que significa chmod 644?
- Dono 6 (leitura 4 + escrita 2), grupo 4 (leitura), outros 4 (leitura). No ls -l aparece como -rw-r--r--.
- 644 é seguro para um site?
- Sim para conteúdo normal: o servidor web lê e nenhuma outra conta altera. Arquivos com credenciais devem ser mais restritos (640, 600, 440 ou 400).
- Por que o SSH diz que permissions 0644 are too open?
- O OpenSSH ignora chaves privadas que outras contas conseguem ler. Rode chmod 600 no arquivo da chave (não no .pub) e tente de novo.
- Por que não consigo entrar numa pasta depois de um chmod -R 644?
- Diretórios precisam do bit de execução para alguém entrar. O 644 tira esse bit, então corrija os diretórios com find . -type d -exec chmod 755 {} +.
Revisado em por Arielton Oberek.