J'essayais d'exécuter chmod -R 777 ./
mais a fini par taper chmod -R 777 /
et définissez 777
sur toute ma machine. Qu'est-ce qui peut mal tourner ? Comment puis-je résoudre ce problème ?
Réponse acceptée :
Problèmes? Oui beaucoup. Peut-il être réparé? Bien sûr. Plus rapide que de réinstaller ? Probablement pas.
Ma recommandation est de réinstaller. Conservez une sauvegarde du système existant et restaurez la liste des packages et le contenu des fichiers dans /etc
et /var
. Pour /usr/local
, vous pouvez probablement restaurer les autorisations manuellement. Pour /home
et /srv
, vous devrez restaurer les autorisations à partir des sauvegardes.
S'il s'agit d'un système avec plusieurs utilisateurs locaux, notez que rendre certains fichiers lisibles par le monde a révélé certaines choses qui auraient dû rester confidentielles.
- Votre liste de mots de passe est maintenant compromise :les utilisateurs locaux ont eu accès à la liste de mots de passe hachés et pourraient essayer de les forcer brutalement. Informez-en vos utilisateurs.
- Toutes les données utilisateur privées (clés SSH, mots de passe stockés, e-mail, tout ce que les utilisateurs pourraient considérer comme confidentiel) ont été exposées à tous les utilisateurs locaux. Informez-en vos utilisateurs.
Si vous voulez vraiment essayer de réparer (plus un exercice d'apprentissage qu'un itinéraire de récupération pratique), restaurez d'abord les autorisations de quelques fichiers. Notez que si la plupart des fichiers sont désormais trop ouverts, il manque à quelques-uns les bits setuid nécessaires. Voici les étapes à suivre avant toute autre chose. Notez qu'il ne s'agit pas d'une liste exhaustive, juste une tentative de rendre le système à peine fonctionnel.
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
Ensuite, vous devrez restaurer toutes les autorisations partout. Pour les fichiers sous /usr
, vous pouvez réinstaller les packages avec l'une des commandes suivantes, en fonction de votre distribution :
- Si vous utilisez Debian, Ubuntu ou une autre distribution basée sur APT, vous pouvez exécuter
apt-get --reinstall install
- Si vous utilisez Arch Linux, vous pouvez exécuter
pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacman
, en supposant que vous êtes dans un Live CD et que votre installation Arch est montée sur/newarch
.
Pour les fichiers sous /etc
et /var
, cela ne fonctionnera pas, car beaucoup d'entre eux resteront tels quels :vous devrez répliquer les autorisations sur une installation fonctionnelle. Pour les fichiers sous /srv
et /home
, vous devrez de toute façon restaurer à partir des sauvegardes. Comme vous pouvez le voir, autant réinstaller.