Skip to content

chmod 555

chmod 555 define r-xr-xr-x: o dono, o grupo e todos os demais podem ler e executar (listar e entrar no diretório), e ninguém pode gravar.

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ãoSim5
Outros (o)SimNãoSim5

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 e executarListar, entrar e abrir itens
Outros (o)Ler e executarListar, entrar e abrir itens

Dados

Representações deste modo
Octal555 (0555)
Simbólicor-xr-xr-x
ls -l, arquivo-r-xr-xr-x
ls -l, diretóriodr-xr-xr-x
Comando simbólico equivalentechmod a=rx
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

  • Diretórios cujo conteúdo não pode mudar: no Linux, /proc e /sys aparecem como dr-xr-xr-x, e o próprio kernel cria o que existe dentro deles.
  • Builds publicados ou ferramentas vendorizadas que nunca devem ser editados no lugar; uma árvore protegida contra escrita transforma uma edição ou rm acidental em erro, em vez de mudança silenciosa.

Quando não usar

  • Como proteção contra o dono ou o root: o dono pode rodar chmod de novo quando quiser, e o root ignora a permissão de escrita.
  • Diretórios onde a aplicação grava cache ou logs: toda escrita falha com permission denied.
  • Arquivos de dados comuns: o par para arquivos é 444, sem os bits de execução.

Comandos

Aplicar em um arquivo ou diretório
chmod 555 release
chmod a=rx release   # mesmo resultado
Conferir o resultado
stat -c '%a %A %n' release     # Linux (stat do GNU): 555 dr-xr-xr-x
stat -f '%Lp %Sp %N' release   # macOS e BSD

Aplicando numa árvore inteira

O chmod -R colocaria o mesmo modo em arquivos e diretórios. Defina os diretórios como 555 e os arquivos como 444 separadamente:

find release -type d -exec chmod 555 {} +
find release -type f -exec chmod 444 {} +

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 a=rX release.

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 555?
Dono 5 (leitura 4 + execução 1), grupo 5, outros 5: r-xr-xr-x. Ninguém tem escrita.
Consigo apagar um arquivo dentro de um diretório 555?
Não. Criar, apagar e renomear itens exige escrita no diretório, e o 555 não tem. O root ainda consegue.
Como deixar um diretório 555 gravável de novo?
Como dono, rode chmod u+w nele (ou chmod 755). O dono sempre pode mudar o modo dos próprios arquivos.

Revisado em por Arielton Oberek.