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
| Quem | Leitura (4) | Escrita (2) | Execução (1) | Dígito |
|---|---|---|---|---|
| Dono (u) | Sim | Sim | Sim | 7 |
| Grupo (g) | Não | Não | Sim | 1 |
| Outros (o) | Não | Não | Sim | 1 |
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) | Rodar um binário compilado; scripts falham sem leitura | Entrar e abrir itens pelo nome exato; não lista |
| Outros (o) | Rodar um binário compilado; scripts falham sem leitura | Entrar e abrir itens pelo nome exato; não lista |
Dados
| Octal | 711 (0711) |
|---|---|
| Simbólico | rwx--x--x |
| ls -l, arquivo | -rwx--x--x |
| ls -l, diretório | drwx--x--x |
| Comando simbólico equivalente | chmod u=rwx,go=x |
| 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
- 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
chmod 711 /home/alice
chmod u=rwx,go=x /home/alice # mesmo resultadostat -c '%a %A %n' /home/alice # Linux (stat do GNU): 711 drwx--x--x
stat -f '%Lp %Sp %N' /home/alice # macOS e BSDAplicando 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.