chmod 755
chmod 755 define rwxr-xr-x: o dono lê, grava e executa, e o grupo e os demais leem e executam, sem alterar. Num diretório, os outros podem listar e entrar, mas não criar nem apagar arquivos.
Matriz de permissões
| Quem | Leitura (4) | Escrita (2) | Execução (1) | Dígito |
|---|---|---|---|---|
| Dono (u) | Sim | Sim | Sim | 7 |
| Grupo (g) | Sim | Não | Sim | 5 |
| Outros (o) | Sim | Não | Sim | 5 |
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) | Ler e executar | Listar, entrar e abrir itens |
| Outros (o) | Ler e executar | Listar, entrar e abrir itens |
Dados
| Octal | 755 (0755) |
|---|---|
| Simbólico | rwxr-xr-x |
| ls -l, arquivo | -rwxr-xr-x |
| ls -l, diretório | drwxr-xr-x |
| Comando simbólico equivalente | chmod u=rwx,go=rx |
| umask padrão que gera esse modo | umask 022 para diretórios novos |
| Como o Git registra um arquivo assim | 100755 (executável) |
| Bits especiais | Nenhum |
Quando usar
- Diretórios em geral, e a raiz de sites em particular: o guia do WordPress diz que todos os diretórios devem ser 755 ou 750.
- Scripts e programas compilados que outras pessoas devem poder executar: a maioria dos programas em /usr/bin é instalada como 755.
- É o que o mkdir cria com o umask comum 022, então um diretório novo já nasce 755.
Quando não usar
- Arquivos comuns que não são programas (HTML, imagens, configs): use 644. Marcar dados como executáveis não quebra nada sozinho, mas polui o diff do Git e denuncia um chmod -R descuidado.
- Diretórios com segredos e pastas home em servidores compartilhados: qualquer um lista os nomes e lê todo arquivo legível lá dentro. Use 750 ou 700.
- O seu ~/.ssh: o manual do ssh recomenda acesso só para você, então use 700.
Comandos
sudo chmod 755 /var/www/site
sudo chmod u=rwx,go=rx /var/www/site # mesmo resultadostat -c '%a %A %n' /var/www/site # Linux (stat do GNU): 755 drwxr-xr-x
stat -f '%Lp %Sp %N' /var/www/site # macOS e BSDAplicando numa árvore inteira
O chmod -R colocaria o mesmo modo em arquivos e diretórios. Defina os diretórios como 755 e os arquivos como 644 separadamente:
sudo find /var/www/site -type d -exec chmod 755 {} +
sudo find /var/www/site -type f -exec chmod 644 {} +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 u=rwX,go=rX /var/www/site.
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 755?
- Dono 7 (leitura 4 + escrita 2 + execução 1), grupo 5 (leitura 4 + execução 1), outros 5. No ls -l aparece como rwxr-xr-x.
- Arquivos devem ser 755 ou 644?
- Diretórios e executáveis 755, o resto 644. Diretórios precisam do bit de execução para alguém entrar neles; arquivos comuns não precisam e não devem ter.
- A permissão 755 é segura?
- É o modo público padrão: só o dono altera alguma coisa. Mas não é privado: qualquer conta da máquina lê o conteúdo, então não use para chaves, senhas ou dados pessoais.
- Como aplicar 755 só nas pastas e não nos arquivos?
- Use o find para pegar só diretórios: find . -type d -exec chmod 755 {} +. Complete com find . -type f -exec chmod 644 {} + para os arquivos.
Revisado em por Arielton Oberek.