chmod go-w
chmod go-w tira o bit de escrita do grupo (g) e dos outros (o) e não mexe nos bits do dono nem em leitura e execução, então 777 vira 755 e 666 vira 644.
Resultado em modos de partida comuns
| Antes | Depois |
|---|---|
777 rwxrwxrwx | 755 rwxr-xr-x |
775 rwxrwxr-x | 755 rwxr-xr-x |
666 rw-rw-rw- | 644 rw-r--r-- |
664 rw-rw-r-- | 644 rw-r--r-- |
1777 rwxrwxrwt | 1755 rwxr-xr-t |
Corrigindo o login por chave no SSH
Com StrictModes ligado (padrão), o sshd recusa a autenticação por chave pública quando a sua home, o ~/.ssh ou o authorized_keys têm escrita para grupo ou outros, e registra "Authentication refused: bad ownership or modes". Tirar essa escrita é a correção inteira; não precisa mexer na leitura.
chmod go-w ~ ~/.ssh ~/.ssh/authorized_keys
# mais restrito, como o ssh(1) recomenda:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keysLimpando depois de um 777
O go-w é o jeito menos traumático de desfazer um chmod -R 777 ou arquivos extraídos com escrita para todos: remove a parte perigosa e mantém a execução nos scripts e diretórios que já tinham, coisa que um 755 ou 644 aplicado em tudo faria errado. Diretórios com sticky bit continuam com ele.
chmod -R go-w /var/www/site
find /var/www/site -perm -o+w # sobrou algo gravável por todos?Perguntas frequentes
- O que significa chmod go-w?
- g é o grupo, o são os outros, - remove, w é escrita: tirar a permissão de escrita de todos menos do dono.
- chmod go-w é igual a chmod 755?
- Num diretório 777, sim. Em outros modos é diferente: o go-w mantém a leitura e a execução atuais, enquanto o 755 define todas.
- Como achar arquivos graváveis por todos?
- find /caminho -type f -perm -o+w lista arquivos que os outros podem gravar; use -type d para diretórios e acrescente ! -perm -1000 para pular diretórios com sticky bit como o /tmp.
Revisado em por Arielton Oberek.