Problemas? Sim, muitos. Pode ser consertado? Certo. Mais rápido do que reinstalar? Provavelmente não.
Minha recomendação é reinstalar. Mantenha um backup do sistema existente e restaure a lista de pacotes e o conteúdo dos arquivos em /etc
e /var
. Para /usr/local
, você provavelmente pode restaurar as permissões manualmente. Para /home
e /srv
, você precisará restaurar as permissões dos backups.
Se este for um sistema com vários usuários locais, observe que alguns arquivos legíveis no mundo revelaram algumas coisas que deveriam ter permanecido confidenciais.
- Sua lista de senhas agora está comprometida: os usuários locais tiveram acesso à lista de senhas com hash e podem tentar forçá-los brutalmente. Notifique seus usuários sobre isso.
- Todos os dados de usuários particulares (chaves ssh, senhas armazenadas, e-mail, qualquer coisa que os usuários considerem confidenciais) foram expostos a todos os usuários locais. Notifique seus usuários sobre isso.
Se você realmente quiser tentar consertar (mais um exercício de aprendizado do que uma rota de recuperação prática), primeiro restaure as permissões de alguns arquivos. Observe que, embora a maioria dos arquivos agora esteja aberta demais, alguns estão faltando os bits setuid necessários. Aqui estão os passos que você deve tomar antes de mais nada. Note que esta não é uma lista exaustiva, apenas uma tentativa de tornar o sistema mal funcional.
chmod -R go-w /
chmod 440 /etc/sudoers
chmod 640 /etc/shadow /etc/gshadow
chmod 600 /etc/ssh/*_key /etc/ssh*key # whichever matches
chmod 710 /etc/ssl/private /etc/cups/ssl
chmod 1777 /tmp /var/tmp /var/lock
chmod 4755 /bin/su /usr/bin/passwd /usr/bin/sudo /usr/bin/sudoedit
chmod 2755 /var/mail /var/spool/mail
Depois, você precisará restaurar todas as permissões em todos os lugares. Para arquivos em /usr
, você pode reinstalar os pacotes com um dos seguintes comandos, dependendo da sua distribuição:
- Se você está usando Debian, Ubuntu ou outra distribuição baseada no APT, você pode executar
apt-get --reinstall install
- Se você estiver usando o Arch Linux, poderá executar
pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacman
, supondo que esteja em um Live CD e sua instalação do Arch esteja montada em/newarch
.
Para arquivos em /etc
e /var
, isso não funcionará, pois muitos deles serão deixados como estão: você precisará replicar as permissões em uma instalação funcional. Para arquivos em /srv
e /home
, você terá que restaurar a partir de backups de qualquer maneira. Como você pode ver, é melhor reinstalar.