chmod 750
chmod 750 define rwxr-x---: o dono lê, grava e executa, os membros do grupo leem e executam (listam e entram no diretório) sem alterar nada, 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 | Sim | 7 |
| Grupo (g) | Sim | Não | Sim | 5 |
| 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, alterar e executar | Listar, entrar, criar, apagar e renomear itens |
| Grupo (g) | Ler e executar | Listar, entrar e abrir itens |
| Outros (o) | Nenhum acesso | Nenhum acesso |
Dados
| Octal | 750 (0750) |
|---|---|
| Simbólico | rwxr-x--- |
| ls -l, arquivo | -rwxr-x--- |
| ls -l, diretório | drwxr-x--- |
| Comando simbólico equivalente | chmod u=rwx,g=rx,o= |
| umask padrão que gera esse modo | umask 027 para diretórios novos |
| Como o Git registra um arquivo assim | 100755 (executável) |
| Bits especiais | Nenhum |
Quando usar
- Pastas home em máquinas compartilhadas: o Ubuntu cria as homes novas como 750 desde a versão 21.04, para que outros usuários não naveguem na sua.
- Código de aplicação que o servidor web lê pelo grupo: dono deploy, grupo www-data, diretórios 750 e arquivos 640. O WordPress aceita 750 para diretórios.
- É o que o mkdir cria com umask 027, uma configuração comum de endurecimento.
Quando não usar
- Quando o processo que serve os arquivos não é o dono nem está no grupo: ele cai em outros, recebe --- e toda requisição falha com 403 ou permission denied.
- Quando os membros do grupo precisam gravar (uploads, cache): use 770 ou 775 só nesses diretórios.
- Em arquivos de dados: o par para arquivos é 640.
Comandos
sudo chmod 750 /var/www/app
sudo chmod u=rwx,g=rx,o= /var/www/app # mesmo resultadostat -c '%a %A %n' /var/www/app # Linux (stat do GNU): 750 drwxr-x---
stat -f '%Lp %Sp %N' /var/www/app # 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:
sudo find /var/www/app -type d -exec chmod 750 {} +
sudo find /var/www/app -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= /var/www/app.
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 100755; 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 750?
- Dono 7 (rwx), grupo 5 (r-x), outros 0 (---). Só o dono e o grupo conseguem entrar.
- Qual a diferença entre 750 e 755?
- O último dígito. O 755 deixa qualquer conta da máquina ler e entrar; o 750 bloqueia quem não é o dono nem está no grupo.
- Por que o nginx dá 403 depois do chmod 750?
- Os workers do nginx rodam como nginx ou www-data. Se essa conta não estiver no grupo do diretório, fica sem acesso. Adicione com usermod -aG seugrupo www-data e reinicie o nginx, ou troque o grupo com chgrp.
Revisado em por Arielton Oberek.