Skip to content

chmod 711

chmod 711 define rwx--x--x: o dono tem acesso total e os demais só executam. Num diretório isso significa atravessá-lo até um caminho cujo nome já conhecem, sem poder listar o que existe lá dentro.

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)NãoNãoSim1
Outros (o)NãoNãoSim1

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)Rodar um binário compilado; scripts falham sem leituraEntrar e abrir itens pelo nome exato; não lista
Outros (o)Rodar um binário compilado; scripts falham sem leituraEntrar e abrir itens pelo nome exato; não lista

Dados

Representações deste modo
Octal711 (0711)
Simbólicorwx--x--x
ls -l, arquivo-rwx--x--x
ls -l, diretóriodrwx--x--x
Comando simbólico equivalentechmod u=rwx,go=x
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

  • Pastas home em hospedagem compartilhada, para o servidor web chegar em /home/alice/public_html enquanto outros clientes não conseguem listar /home/alice.
  • Binários compilados que outros podem executar mas não devem copiar nem inspecionar: o kernel executa um binário sem permissão de leitura. O guia de permissões do WordPress mostra um binário php-cgi restringido de 755 para 711 assim.

Quando não usar

  • Scripts: o interpretador precisa ler o script, então um script shell ou Python com 711 falha para todos menos o dono (o bash acusa permission denied ao tentar ler).
  • Como sigilo de verdade para um diretório: nomes podem ser adivinhados. Um caminho previsível como /home/alice/.bashrc fica acessível se o arquivo for legível. Use 700 quando nada lá dentro deve ser alcançável.

Comandos

Aplicar em um arquivo ou diretório
chmod 711 /home/alice
chmod u=rwx,go=x /home/alice   # mesmo resultado
Conferir o resultado
stat -c '%a %A %n' /home/alice     # Linux (stat do GNU): 711 drwx--x--x
stat -f '%Lp %Sp %N' /home/alice   # macOS e BSD

Aplicando numa árvore inteira

Aplique 711 só no diretório específico (em geral a home) ou no binário, nunca na árvore. De forma recursiva, todo arquivo ficaria só executável e ilegível para os outros.

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 711?
Dono 7 (rwx), grupo 1 (--x), outros 1 (--x). Grupo e outros só executam: rodam um binário ou atravessam um diretório.
Dá para ler um arquivo dentro de um diretório 711?
Sim, se a pessoa souber o nome exato e o próprio arquivo der leitura a ela. O 711 esconde a listagem, não os arquivos.
Por que usar 711 em vez de 755 na pasta home?
Os dois deixam o servidor web chegar ao public_html. O 711 também impede outros usuários de rodar ls na sua home e ver o que você guarda lá.

Revisado em por Arielton Oberek.