Skip to content

chmod 664

chmod 664 define rw-rw-r--: o dono e os membros do grupo do arquivo podem ler e alterar, e os demais só podem ler. 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)SimSimNão6
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 e alterarSó listar nomes; a escrita não vale sem execução
Outros (o)Ler o conteúdoSó listar nomes; não entra nem abre nada

Dados

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

Quando usar

  • Arquivos em projetos compartilhados onde várias contas do mesmo grupo editam os mesmos arquivos; combine com diretórios 2775 para manter o grupo.
  • Conteúdo que o servidor web precisa regravar quando compartilha um grupo com o seu usuário (o caso 664 do guia de permissões do WordPress).
  • É o que os arquivos novos recebem com umask 002, padrão para usuários comuns em sistemas com grupo privado por usuário.

Quando não usar

  • Quando o grupo inclui contas em que você não confia totalmente: elas podem reescrever o arquivo.
  • Segredos: os outros ainda leem. Use 640 ou 600.
  • Arquivos do SSH: um authorized_keys com escrita para o grupo faz o sshd recusar login por chave com StrictModes.

Comandos

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

Aplicando numa árvore inteira

O chmod -R colocaria o mesmo modo em arquivos e diretórios. Defina os diretórios como 775 e os arquivos como 664 separadamente:

find . -type d -exec chmod 775 {} +
find . -type f -exec chmod 664 {} +

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 ug=rwX,o=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 664?
Dono 6 (rw-), grupo 6 (rw-), outros 4 (r--). Dono e grupo editam, os outros leem.
Por que meus arquivos novos saem 664 e não 644?
Seu umask é 002, não 022. Muitas distribuições usam 002 para usuários comuns porque cada usuário tem um grupo privado com o próprio nome, então a escrita do grupo só chega a você.
Qual a diferença entre 664 e 644?
O dígito do grupo: 6 deixa os membros do grupo alterarem o arquivo, 4 só deixa ler.

Revisado em por Arielton Oberek.