Skip to content

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

Quais bits de permissão cada classe tem
QuemLeitura (4)Escrita (2)Execução (1)Dígito
Dono (u)SimSimNão6
Grupo (g)SimNãoNão4
Outros (o)SimNãoNão4

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.

O que cada classe pode fazer com um arquivo e com um diretório
QuemNum arquivoNum diretório
Dono (u)Ler e alterarSó listar nomes; a escrita não vale sem execução
Grupo (g)Ler o conteúdoSó listar nomes; não entra nem abre nada
Outros (o)Ler o conteúdoSó listar nomes; não entra nem abre nada

Dados

Representações deste modo
Octal644 (0644)
Simbólicorw-r--r--
ls -l, arquivo-rw-r--r--
ls -l, diretóriodrw-r--r--
Comando simbólico equivalentechmod u=rw,go=r
umask padrão que gera esse modoumask 022 para arquivos novos
Como o Git registra um arquivo assim100644 (não executável)
Bits especiaisNenhum

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

Aplicar em um arquivo ou diretório
chmod 644 index.html
chmod u=rw,go=r index.html   # mesmo resultado
Conferir o resultado
stat -c '%a %A %n' index.html     # Linux (stat do GNU): 644 -rw-r--r--
stat -f '%Lp %Sp %N' index.html   # macOS e BSD

Aplicando 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.