Skip to content

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

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_keys

Limpando 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.