chmod 544
chmod 544 define r-xr--r--: o dono pode ler e executar o arquivo, mas não alterá-lo, e o grupo e os demais só podem ler.
Matriz de permissões
| Quem | Leitura (4) | Escrita (2) | Execução (1) | Dígito |
|---|---|---|---|---|
| Dono (u) | Sim | Não | Sim | 5 |
| 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 e executar | Listar, entrar e abrir 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 | 544 (0544) |
|---|---|
| Simbólico | r-xr--r-- |
| ls -l, arquivo | -r-xr--r-- |
| ls -l, diretório | dr-xr--r-- |
| Comando simbólico equivalente | chmod u=rx,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 publicados que a conta dona do serviço executa e que devem ser trocados por um novo deploy, não editados no lugar.
- É o 744 sem a escrita do dono, que é o resultado de chmod u-w num arquivo 744.
Quando não usar
- Diretórios: grupo e outros ficam com leitura sem execução, então veem os nomes mas não abrem nada.
- Como sigilo: grupo e outros leem o arquivo e podem rodá-lo pelo interpretador (sh healthcheck.sh).
- Quando o dono precisa atualizar o arquivo com frequência: toda edição exige um chmod antes.
Comandos
chmod 544 healthcheck.sh
chmod u=rx,go=r healthcheck.sh # mesmo resultadostat -c '%a %A %n' healthcheck.sh # Linux (stat do GNU): 544 -r-xr--r--
stat -f '%Lp %Sp %N' healthcheck.sh # macOS e BSDAplicando numa árvore inteira
Não existe forma recursiva sensata do 544: os diretórios ficariam listáveis, mas impossíveis de entrar para grupo e outros. Aplique só em scripts específicos.
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 544?
- Dono 5 (r-x), grupo 4 (r--), outros 4 (r--).
- O dono consegue editar um arquivo 544?
- Não diretamente; a escrita falha. O dono pode rodar chmod u+w antes.
- Qual a diferença entre 544 e 744?
- Só a escrita do dono. O 744 deixa o dono editar o script, o 544 não.
Revisado em por Arielton Oberek.