Skip to content

chmod 744

chmod 744 define rwxr--r--: o dono pode ler, alterar e executar o arquivo, e o grupo e os demais podem lê-lo, mas não executá-lo diretamente nem alterá-lo.

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ãoNão4
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, alterar e executarListar, entrar, criar, apagar e renomear itens
Grupo (g)Ler o conteúdoSó listar nomes; não entra nem abre nada
Outros (o)Ler o conteúdoSó listar nomes; não entra nem abre nada

Dados

Representações deste modo
Octal744 (0744)
Simbólicorwxr--r--
ls -l, arquivo-rwxr--r--
ls -l, diretóriodrwxr--r--
Comando simbólico equivalentechmod u=rwx,go=r
umask padrão que gera esse modoNenhum dos umasks comuns; defina explicitamente com chmod
Como o Git registra um arquivo assim100755 (executável)
Bits especiaisNenhum

Quando usar

  • Scripts que só o dono deve disparar (scripts de manutenção do root, tarefas do cron) quando o código em si não é secreto.
  • É o resultado de chmod u+x num arquivo que era 644.

Quando não usar

  • Como controle de segurança para scripts shell, Python ou outras linguagens interpretadas: quem lê o arquivo consegue rodá-lo com bash backup.sh ou python3 tool.py, porque o interpretador só precisa de leitura. Se o conteúdo precisa de proteção, use 700.
  • Em diretórios: grupo e outros ficam com leitura sem execução, então listam os nomes mas não abrem, não consultam e não entram em nada. Esse meio-acesso quase nunca é o desejado.
  • Scripts com senhas ou tokens: com 744 qualquer conta consegue lê-los.

Comandos

Aplicar em um arquivo ou diretório
chmod 744 backup.sh
chmod u=rwx,go=r backup.sh   # mesmo resultado
Conferir o resultado
stat -c '%a %A %n' backup.sh     # Linux (stat do GNU): 744 -rwxr--r--
stat -f '%Lp %Sp %N' backup.sh   # macOS e BSD

Aplicando numa árvore inteira

Não aplique 744 de forma recursiva. Em diretórios, grupo e outros conseguem listar os nomes mas não entrar, o que corta o acesso a tudo que está abaixo. Aplique 744 só nos scripts e deixe os diretórios em 755.

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 744?
Dono 7 (rwx), grupo 4 (r--), outros 4 (r--). O dono pode executar o arquivo; os demais só podem ler.
Outros usuários ainda conseguem rodar um script 744?
Não como ./backup.sh, que dá permission denied. Mas podem passá-lo ao interpretador (bash backup.sh), que só precisa de leitura. Binários compilados precisam mesmo do bit de execução.
Para scripts, 744 ou 755?
Use 755 quando outros devem rodar o script, 744 quando só o dono deve, e 700 quando o próprio conteúdo precisa ser privado.

Revisado em por Arielton Oberek.