chmod 640
chmod 640 define rw-r-----: o dono pode ler e alterar o arquivo, os membros do grupo podem ler, e os demais não têm acesso.
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) | Não | Não | Não | 0 |
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) | Nenhum acesso | Nenhum acesso |
Dados
| Octal | 640 (0640) |
|---|---|
| Simbólico | rw-r----- |
| ls -l, arquivo | -rw-r----- |
| ls -l, diretório | drw-r----- |
| Comando simbólico equivalente | chmod u=rw,g=r,o= |
| umask padrão que gera esse modo | umask 027 para arquivos novos |
| Como o Git registra um arquivo assim | 100644 (não executável) |
| Bits especiais | Nenhum |
Quando usar
- Configurações com credenciais que um serviço lê pelo grupo: dono root ou deploy, grupo www-data, modo 640.
- Arquivos de log: Debian e Ubuntu gravam muitos arquivos de /var/log como 640 com grupo adm, para administradores lerem sem sudo e usuários comuns não.
- Arquivos de site que o servidor lê pelo grupo (o WordPress aceita 640 para arquivos). É o que os arquivos novos recebem com umask 027.
Quando não usar
- Quando o processo que lê o arquivo não é o dono nem está no grupo: ele recebe permission denied.
- Chaves privadas do SSH: o ssh recusa chaves que o grupo consegue ler. Use 600.
- Arquivos que o grupo precisa atualizar: use 660.
Comandos
chmod 640 config.env
chmod u=rw,g=r,o= config.env # mesmo resultadostat -c '%a %A %n' config.env # Linux (stat do GNU): 640 -rw-r-----
stat -f '%Lp %Sp %N' config.env # macOS e BSDAplicando numa árvore inteira
O chmod -R colocaria o mesmo modo em arquivos e diretórios. Defina os diretórios como 750 e os arquivos como 640 separadamente:
find . -type d -exec chmod 750 {} +
find . -type f -exec chmod 640 {} +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,g=rX,o= ..
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 640?
- Dono 6 (rw-), grupo 4 (r--), outros 0 (---).
- Qual a diferença entre 640 e 644?
- Os outros. O 644 deixa qualquer conta ler o arquivo; o 640 limita a leitura ao dono e ao grupo.
- Um arquivo .env deve ser 640 ou 600?
- 600 se a aplicação roda como dona do arquivo, 640 se o dono é um usuário de deploy e a aplicação lê pelo grupo.
Revisado em por Arielton Oberek.