chmod 440
chmod 440 define r--r-----: o dono e os membros do grupo podem ler o arquivo, ninguém grava nem executa, e os demais não têm acesso.
Matriz de permissões
| Quem | Leitura (4) | Escrita (2) | Execução (1) | Dígito |
|---|---|---|---|---|
| Dono (u) | Sim | Não | Não | 4 |
| Grupo (g) | Sim | Não | Não | 4 |
| Outros (o) | Não | Não | Não | 0 |
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 o conteúdo | Só listar nomes; não entra nem abre nada |
| Grupo (g) | Ler o conteúdo | Só listar nomes; não entra nem abre nada |
| Outros (o) | Nenhum acesso | Nenhum acesso |
Dados
| Octal | 440 (0440) |
|---|---|
| Simbólico | r--r----- |
| ls -l, arquivo | -r--r----- |
| ls -l, diretório | dr--r----- |
| Comando simbólico equivalente | chmod ug=r,o= |
| umask padrão que gera esse modo | Nenhum dos umasks comuns; defina explicitamente com chmod |
| Como o Git registra um arquivo assim | 100644 (não executável) |
| Bits especiais | Nenhum |
Quando usar
- /etc/sudoers e os arquivos em /etc/sudoers.d: o visudo grava como 0440 com dono root, e o sudo se recusa a rodar se o sudoers tiver escrita para outros.
- wp-config.php e arquivos de credenciais parecidos: o guia de segurança do WordPress recomenda 440 ou 400 para outros usuários do servidor não lerem a senha do banco. Use 440 quando o servidor web lê pelo grupo.
Quando não usar
- Arquivos que a própria aplicação atualiza (instaladores, gerenciadores de plugins): a escrita falha. Afrouxe temporariamente e volte para 440 depois.
- Quando o grupo inclui contas que não deveriam ver o conteúdo.
Como adicionar um arquivo em sudoers.d com segurança
Edite com visudo para a sintaxe ser verificada antes de o arquivo entrar em uso; um sudoers quebrado pode trancar você fora do sudo. O visudo -c confere modos e sintaxe de todos os arquivos.
sudo visudo -f /etc/sudoers.d/deploy
sudo chmod 440 /etc/sudoers.d/deploy
sudo visudo -cComandos
sudo chmod 440 /etc/sudoers.d/deploy
sudo chmod ug=r,o= /etc/sudoers.d/deploy # mesmo resultadostat -c '%a %A %n' /etc/sudoers.d/deploy # Linux (stat do GNU): 440 -r--r-----
stat -f '%Lp %Sp %N' /etc/sudoers.d/deploy # macOS e BSDAplicando numa árvore inteira
O chmod -R colocaria o mesmo modo em arquivos e diretórios. Defina os diretórios como 550 e os arquivos como 440 separadamente:
find . -type d -exec chmod 550 {} +
find . -type f -exec chmod 440 {} +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 ug=rX,o= ..
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 100644; 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 440?
- Dono 4 (r--), grupo 4 (r--), outros 0 (---).
- Qual permissão o /etc/sudoers deve ter?
- 0440, dono root, grupo root. É o que o visudo cria e o que o sudo espera.
- O wp-config.php deve ser 440 ou 400?
- 400 se o PHP roda como dono do arquivo (comum com um pool do PHP-FPM por site), 440 se o PHP lê pelo grupo.
Revisado em por Arielton Oberek.