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
| Quem | Leitura (4) | Escrita (2) | Execução (1) | Dígito |
|---|---|---|---|---|
| Dono (u) | Sim | Sim | Não | 6 |
| Grupo (g) | Sim | Sim | Não | 6 |
| 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 e alterar | Só listar nomes; a escrita não vale sem execução |
| Outros (o) | Ler o conteúdo | Só listar nomes; não entra nem abre nada |
Dados
| Octal | 664 (0664) |
|---|---|
| Simbólico | rw-rw-r-- |
| ls -l, arquivo | -rw-rw-r-- |
| ls -l, diretório | drw-rw-r-- |
| Comando simbólico equivalente | chmod ug=rw,o=r |
| umask padrão que gera esse modo | umask 002 para arquivos novos |
| Como o Git registra um arquivo assim | 100644 (não executável) |
| Bits especiais | Nenhum |
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
chmod 664 README.md
chmod ug=rw,o=r README.md # mesmo resultadostat -c '%a %A %n' README.md # Linux (stat do GNU): 664 -rw-rw-r--
stat -f '%Lp %Sp %N' README.md # macOS e BSDAplicando 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.