web-dev-qa-db-fra.com

Correction des autorisations du serveur après un chmod accidentel

En essayant de déboguer un serveur de messagerie, j'ai tapé:

chmod -R 777 /

au lieu de:

chmod -R 777 .

et la cerise sur le gâteau, parce que j'ai oublié d'avoir changé le script que j'utilise pour me connecter afin de réparer quelque chose, j'ai fait tout cela en tant que root. Je n'ai pas de sauvegarde de la plupart des systèmes (mauvais choix, je le sais).

Contrairement aux questions "Récupération de chmod -R -777 /" et "Que faire après 'chmod -R 777 /'?" Je suis toujours connecté en tant qu'utilisateur root, et l'ensemble du système n'a pas été modifié. J'ai donc un certain contrôle sur le système. J'ai également quitté le commandement en une seconde pour minimiser les dégâts. Depuis lors, j'ai physiquement déconnecté le serveur d'Internet.

Je crois qu'un script pourrait résoudre ce problème s'il restaurait les autorisations du système de fichiers en fonction des données du gestionnaire de paquets, mais je ne sais pas comment procéder. Si ce n'est pas possible, comment puis-je enregistrer les données du serveur pour réinstaller le système d'exploitation?

Je suis conscient des risques potentiels de manquer un fichier, mais préférerais que la récupération réinstalle malgré eux.

voici la sortie actuelle de ls -la /:

drwxrwxrwx  22 root root  4096 Sep  7  2016 .
drwxrwxrwx  22 root root  4096 Sep  7  2016 ..
drwxr-xr-x   2 root root  4096 May 18 07:55 bin
drwxr-xr-x   3 root root  4096 Sep 21 07:53 boot
drwxr-xr-x  19 root root  3180 Sep 11 20:54 dev
drwxrwxrwx  92 root root  4096 Aug 23 07:50 etc
drwxr-xr-x   4 root root  4096 May 23  2016 home
lrwxrwxrwx   1 root root    31 Feb 24  2016 initrd.img -> /boot/initrd.img-3.16.0-4-AMD64
drwxrwxrwx  18 root root  4096 Feb 24  2016 lib
drwxr-xr-x   2 root root  4096 Jun 20 07:00 lib64
drwx------   2 root root 16384 May 19  2016 lost+found
drwxrwxrwx   2 root root  4096 May  5  2015 media
drwxr-xr-x   2 root root  4096 May  5  2015 mnt
drwxr-xr-x   3 root root  4096 May 28  2016 opt
dr-xr-xr-x 148 root root     0 Sep  3 21:55 proc
drwxrwxrwx  10 root root  4096 Aug 19 17:58 root
drwxr-xr-x  22 root root   800 Sep 21 17:09 run
drwxrwxrwx   3 root root  4096 Jun 20 07:00 sbin
drwxr-xr-x   4 root root  4096 Sep 20 23:18 sftp
dr-xr-xr-x  13 root root     0 Sep  3 21:55 sys
drwxrwxrwx   8 root root  4096 Sep 21 17:17 tmp
drwxrwxrwx  11 root root  4096 Feb 24  2016 usr
drwxr-xr-x  14 root root  4096 Jun 25 06:21 var
lrwxrwxrwx   1 root root    27 Feb 24  2016 vmlinuz -> boot/vmlinuz-3.16.0-4-AMD64

je viens de remarquer que, pris de panique, j’ai cliqué sur le forum Ubuntu et non sur Debian, je ne suis pas conscient que ce n’est pas comment on règle un serveur de messagerie. c'était un correctif bâclé hacky pour voir ce qui a éclaté

iv republié cela dans le bon forum maintenant

5
kaioker2

Erreur de permission de réparation

Comment restaurer les droits du répertoire racine par défaut?

Règle n ° 1: si vous n'êtes pas à l'aise avec les lignes de commande, n'exécutez aucune commande en tant que root.

Lancer chmod -R 777 / en tant que root cassera votre système.

Exécuter rm -rf / en tant que root entraînera un sinistre! .

Si vous avez exécuté chmod -R 777 / en tant que root, procédez comme suit pour le restaurer:

Étape 1:

Copiez le script suivant, collez-le sur votre console pour générer le script fixpermission

echo '
chmod -R 755 /bin /boot /dev /etc/ /home /lib /lib64 \
/media /mnt /opt /run /sbin /srv /usr /var

chmod -R 777 /initrd.img /vmlinuz
chmod -R 1777 /tmp
chmod -R 555 /sys
chmod -R 555 /proc
chmod -R 700 /root

' > fixpermission

chmod +x fixpermission

./fixpermission

Ce qui précède créera un script nommé fixpermission et l'exécutera par ./fixpermission s'il n'est pas déjà appelé.

Étape 2:

Exécutez stat -c '%A %a %n' /* pour afficher votre répertoire approprié et leur autorisation restaurée.

Exemple: la structure de permission de votre répertoire devrait ressembler à la suivante:

root@plab:~# stat -c '%A %a %n' /*
drwxr-xr-x 755 /bin
drwxr-xr-x 755 /boot
drwxr-xr-x 755 /dev
drwxr-xr-x 755 /etc
drwxr-xr-x 755 /home
lrwxrwxrwx 777 /initrd.img
lrwxrwxrwx 777 /initrd.img.old
drwxr-xr-x 755 /lib
drwxr-xr-x 755 /lib64
drwx------ 700 /lost+found
drwxr-xr-x 755 /media
drwxr-xr-x 755 /mnt
drwxr-xr-x 755 /opt
dr-xr-xr-x 555 /proc
drwx------ 700 /root
drwxr-xr-x 755 /run
drwxr-xr-x 755 /sbin
drwxr-xr-x 755 /srv
dr-xr-xr-x 555 /sys
drwxrwxrwt 1777 /tmp
drwxr-xr-x 755 /usr
drwxr-xr-x 755 /var
lrwxrwxrwx 777 /vmlinuz
lrwxrwxrwx 777 /vmlinuz.old

Étape 3:

Redémarrez votre système!

J'espère que cela vous aidera.

7
Prince Adeyemi