Existem algumas razões.
Primeiro, além das habituais permissões de leitura / gravação / execução, existem alguns outros bits que as permissões de arquivo contêm. Mais notavelmente setuid
e setgid
. Quando um programa com um desses bits de permissão é definido é executado, obtém o "UID efetivo" e / ou "GID efetivo" do proprietário do programa, em vez do usuário que o executou. Isso permite que os programas sejam executados com mais permissões do que o usuário que os executou. Ele é usado por muitos utilitários de sistema cruciais, incluindo su
e sudo
. Seu comando chmod
limpa esses bits deixando os utilitários inutilizáveis.
Em segundo lugar, alguns programas (principalmente ssh
) fazem uma verificação de sanidade nas permissões de arquivo e se recusam a usar arquivos com permissões que eles consideram inseguras. Isso reduz o risco de os administradores descuidados acidentalmente deixarem brechas de segurança, mas faz com que lidar com as permissões de arquivos aniquiladas seja ainda mais doloroso.