GNU/Linux >> Tutoriels Linux >  >> Cent OS

Centos - Corbeille déplacée et autres dossiers ! Comment les récupérer ?

J'ai accidentellement déplacé tous les dossiers de la racine vers un sous-dossier. (/bin , /etc , /home , /lib , /usr … tous déplacés) Les seuls qui n'ont pas été déplacés, puisqu'ils étaient en cours d'utilisation, sont /bak , /boot , /dev , /proc , /sys .

Maintenant, toute commande que j'essaie d'exécuter ne se produira tout simplement pas. Je reçois constamment "Aucun fichier ou répertoire de ce type".

Je suis connecté via ssh et via ftp, mais je ne peux pas déplacer de fichiers via ftp, car la connexion SU directe est désactivée. J'ai également accès au serveur réel si j'ai besoin de faire quelque chose directement à partir de là.

Je suppose que j'aurais besoin de modifier un fichier de configuration afin de lui dire où trouver le /bin dossier et cela m'aiderait à y accéder à nouveau, mais je ne sais pas quel fichier ce serait ni comment le faire (puisque je ne peux même pas exécuter chmod pour modifier les autorisations).

Existe-t-il une autre solution que la réinstallation ?

Je travaille sur une ancienne version de CentOS.

Je suis extrêmement nouveau dans le monde de Linux, d'où cette action et la question…

Réponse acceptée :

Si vous avez toujours un shell root, vous pouvez avoir une chance de réparer votre système. Disons que vous avez déplacé tous les répertoires communs (/bin , /etc , /lib , /sbin , /usr — ce sont ceux qui pourraient rendre la récupération difficile) sous /oops .

Vous ne pourrez pas émettre le mv commande directement, même si vous spécifiez le chemin complet /oops/bin/mv . C'est parce que mv est lié dynamiquement ; parce que vous avez déplacé le /lib répertoire, mv ne peut pas s'exécuter car il ne trouve pas les bibliothèques qui font partie de son code. En fait, c'est encore pire que ça :mv impossible de trouver le chargeur dynamique /lib/ld-linux.so.2 (le nom peut varier en fonction de votre architecture et de la variante Unix, et le répertoire peut être un nom différent tel que /lib32 ou /lib64 ). Par conséquent, jusqu'à ce que vous ayez déplacé le /lib répertoire arrière, vous devez invoquer explicitement l'éditeur de liens et vous devez spécifier le chemin d'accès aux bibliothèques déplacées. Voici la commande testée sur Debian squeeze i386.

export LD_LIBRARY_PATH=/oops/lib:/oops/lib/i386-linux-gnu
/oops/lib/ld-linux.so.2 /oops/bin/mv /oops/* /

Vous devrez peut-être ajuster cela un peu pour d'autres distributions ou architectures. Par exemple, pour CentOS sur x86_64 :

export LD_LIBRARY_PATH=/oops/lib:/oops/lib64
/oops/lib64/ld-linux-x86-64.so.2 /oops/bin/mv /oops/* /

Quand tu as foiré quelque chose /lib , il est utile d'avoir une boîte à outils liée statiquement. Certaines distributions (je ne connais pas CentOS) fournissent une copie liée statiquement de Busybox. Il y a aussi sash, un shell autonome avec de nombreuses commandes intégrées. Si vous en avez un, vous pouvez effectuer votre récupération à partir de là. Si vous ne les avez pas installés avant le fait, il est trop tard.

# mkdir /oops
# mv /lib /bin /oops
# sash
Stand-alone shell (version 3.7)
> -mv /oops/* /
> exit

Si vous n'avez plus de shell root, mais que vous avez toujours un démon SSH à l'écoute et que vous pouvez vous connecter directement en tant que root sur ssh, et que vous disposez de l'une de ces boîtes à outils liées statiquement, vous pourrez peut-être vous connecter en ssh. peut fonctionner si vous avez déplacé /lib et /bin , mais pas /etc .

ssh [email protected] /oops/bin/sash
[email protected]'s password:
Stand-alone shell (version 3.7)
> -mv /oops/* /

Certains administrateurs configurent un autre compte avec un shell lié statiquement, ou font en sorte que le compte root utilise un shell lié statiquement, juste pour ce genre de problème.

Connexe :Autorisations CentOS pour l'utilisateur FTP - 550 L'opération de création de répertoire a échoué ?

Si vous n'avez pas de root shell et que vous n'avez pas pris de précautions, vous devrez démarrer à partir d'un live CD/USB Linux (n'importe lequel fera l'affaire tant qu'il est assez récent pour pouvoir accéder à vos disques et systèmes de fichiers) et déplacer les fichiers en arrière.


Cent OS
  1. Comment installer et configurer Nginx sur CentOS 7

  2. Comment installer dig sur CentOS 7 et 8

  3. Comment installer Node.js et NPM sur CentOS 7

  4. Comment installer Node.js et NPM sur CentOS

  5. Bin déplacé et autres dossiers ! Comment les récupérer ?

Comment installer PowerDNS et Poweradmin sur CentOS 7

Comment installer et configurer GitLab CE sur CentOS 7

Comment installer et configurer Zabbix sur CentOS 7

Comment installer et configurer GitLab CE sur CentOS 8

Comment installer et configurer Nagios 4.0.7 sur CentOS 7

Comment installer et configurer GlusterFS sur CentOS 7/CentOS 8