Skip to content

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

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

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, alterar e executarListar, entrar, criar, apagar e renomear itens
Grupo (g)Ler e executarListar, entrar e abrir itens
Outros (o)Nenhum acessoNenhum acesso

Dados

Representações deste modo
Octal750 (0750)
Simbólicorwxr-x---
ls -l, arquivo-rwxr-x---
ls -l, diretóriodrwxr-x---
Comando simbólico equivalentechmod u=rwx,g=rx,o=
umask padrão que gera esse modoumask 027 para diretórios novos
Como o Git registra um arquivo assim100755 (executável)
Bits especiaisNenhum

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

Aplicar em um arquivo ou diretório
sudo chmod 750 /var/www/app
sudo chmod u=rwx,g=rx,o= /var/www/app   # mesmo resultado
Conferir o resultado
stat -c '%a %A %n' /var/www/app     # Linux (stat do GNU): 750 drwxr-x---
stat -f '%Lp %Sp %N' /var/www/app   # macOS e BSD

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