Skip to content

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

Quais bits de permissão cada classe tem
QuemLeitura (4)Escrita (2)Execução (1)Dígito
Dono (u)SimNãoSim5
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 e executarListar, entrar e abrir 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
Octal544 (0544)
Simbólicor-xr--r--
ls -l, arquivo-r-xr--r--
ls -l, diretóriodr-xr--r--
Comando simbólico equivalentechmod u=rx,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 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

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

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