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
| Quem | Leitura (4) | Escrita (2) | Execução (1) | Dígito |
|---|---|---|---|---|
| Dono (u) | Sim | Sim | Sim | 7 |
| Grupo (g) | Sim | Não | Não | 4 |
| 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, alterar e executar | Listar, entrar, criar, apagar e renomear itens |
| Grupo (g) | Ler o conteúdo | Só listar nomes; não entra nem abre nada |
| Outros (o) | Ler o conteúdo | Só listar nomes; não entra nem abre nada |
Dados
| Octal | 744 (0744) |
|---|---|
| Simbólico | rwxr--r-- |
| ls -l, arquivo | -rwxr--r-- |
| ls -l, diretório | drwxr--r-- |
| Comando simbólico equivalente | chmod u=rwx,go=r |
| umask padrão que gera esse modo | Nenhum dos umasks comuns; defina explicitamente com chmod |
| Como o Git registra um arquivo assim | 100755 (executável) |
| Bits especiais | Nenhum |
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
chmod 744 backup.sh
chmod u=rwx,go=r backup.sh # mesmo resultadostat -c '%a %A %n' backup.sh # Linux (stat do GNU): 744 -rwxr--r--
stat -f '%Lp %Sp %N' backup.sh # macOS e BSDAplicando 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.