Si votre système est busybox
installé, vous pouvez l'utiliser pour remettre les choses en place.
busybox
est un binaire avec de nombreux utilitaires standard intégrés. Des choses comme ça mv
, sh
, ls
, etc.
D'après votre commentaire sur la réponse de Pavel, il semble que tout se soit terminé /var
. Vous pouvez essayer de faire /var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /
. Cela devrait rendre la plupart de votre système opérationnel à nouveau. Il existe quelques répertoires tels que ceux /tmp
qui existent également sous /var/tmp
, vous ne pouvez donc pas simplement les déplacer. J'espère que ce sont ceux qui mv
se sont plaints et qu'ils ont été laissés seuls.
Obtenir un shell racine
Vous avez également mentionné que vous avez perdu votre shell racine, ce su
qui vous donne une ld-linux
erreur de bibliothèque. Vous pourrez peut-être utiliser les éléments suivants:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su
Remarque: En tentant cela, cela ne fonctionne pas. En effet , il su
faut plusieurs fichiers dans /etc
( passwd
, pam.d
et d' autres). S'ils /etc
étaient encore intacts, cela aurait de bonnes chances de réussir.
Sans occupé
Si vous n'avez pas de busybox disponible, vous pourrez peut-être utiliser la même astuce ld-linux que pour su
:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /
À partir d'un CD live
Comme discuté dans les commentaires, si vous avez perdu le shell racine, vous êtes à peu près coincé. Fondamentalement, pour résoudre ce problème, vous avez besoin des privilèges root. La seule façon d'y arriver est d'avoir un utilitaire tel que su
ou d' sudo
augmenter vos autorisations (qui ne sont pas fonctionnelles à ce stade), ou de pirater un autre programme déjà exécuté en tant que root (selon ce qui est en cours d'exécution, peu probable).
Cela laisse la seule option étant un CD live. Une fois démarré sur un CD live (ou USB live, ou quoi que ce soit), montez simplement le volume racine et déplacez les répertoires concernés /var
vers leur page d'origine /
.
Synopsis de ce qui s'est passé
folder/*
aurait étendu à quelque chose comme folder/foo
et folder/bar
.
/*
aurait étendu à quelque chose comme /bin
/lib32
/lib64
/etc
/home
/root
/var
. Notant que /var
c'est le dernier élément.
Ainsi, lorsque le shell a étendu tous ces globes, il aurait exécuté quelque chose comme ceci:
mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var
Tout /var
comme le dernier élément de la liste, tout y a été déplacé.
Pourquoi des /var/bin/su
erreurs avec/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
Presque tous les binaires sous Linux sont liés dynamiquement ld-linux
. ld-linux
est la bibliothèque chargée de charger les autres bibliothèques nécessaires à un binaire. Sur votre système, cela vit /lib64/ld-linux-x86-64.so.2
. Depuis que ce répertoire a été déplacé, tout exécutable lié dynamiquement ne fonctionnera plus.
La raison pour laquelle la boîte occupée fonctionne est que la boîte occupée est liée statiquement. Il n'utilise pas ld-linux
.
/var/bin/su
directement?