Wenn Ihr System busyboxinstalliert ist, können Sie dies verwenden, um die Dinge zurückzusetzen.
busyboxist eine Binärdatei mit vielen integrierten Standarddienstprogrammen. Dinge wie mv, sh, lsusw.
Aus Ihrem Kommentar zu Pavel's Antwort geht hervor, dass alles darin gelandet ist /var. Sie können es versuchen /var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /. Dadurch sollte der größte Teil Ihres Systems wieder betriebsbereit sein. Es gibt einige Verzeichnisse, /tmpdie auch als existieren /var/tmp, sodass Sie sie nicht einfach verschieben können. Hoffentlich haben sich diese mvbeschwert und wurden allein gelassen.
Eine Root-Shell bekommen
Sie haben auch erwähnt, dass Sie Ihre Root-Shell verloren haben und dass dies zu sueinem ld-linuxBibliotheksfehler führt. Möglicherweise können Sie Folgendes verwenden:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su
Hinweis: Bei diesem Versuch funktioniert es nicht. Dies liegt daran , suerfordert mehrere Dateien in /etc( passwd, pam.dund andere). Wenn dies /etcnoch intakt wäre, hätte dies gute Erfolgschancen.
Ohne Busybox
Wenn Sie keine Busybox zur Verfügung haben, können Sie möglicherweise denselben ld-linux-Trick verwenden wie für 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} /
Von einer Live-CD
Wie in den Kommentaren erläutert, stecken Sie ziemlich fest, wenn Sie die Root-Shell verloren haben. Grundsätzlich benötigen Sie Root-Rechte, um dies zu beheben. Die einzige Möglichkeit, dorthin zu gelangen, besteht darin, ein Dienstprogramm wie Ihre Berechtigungen zu verwenden suoder zu erweitern sudo(beide sind derzeit nicht funktionsfähig) oder ein anderes Programm zu entführen, das bereits als Root ausgeführt wird (je nachdem, was ausgeführt wird, wahrscheinlich nicht möglich).
Dies lässt die einzige Option eine Live-CD. Mounten Sie nach dem Booten einer Live-CD (oder eines Live-USB-Geräts oder was auch immer) einfach das Root-Volume und verschieben Sie die betroffenen Verzeichnisse /varwieder in ihr ursprüngliches Zuhause /.
Zusammenfassung dessen, was passiert ist
folder/*hätte sich auf etwas wie folder/foound ausgeweitet folder/bar.
/*hätte sich auf so etwas ausgedehnt /bin /lib32 /lib64 /etc /home /root /var. Das /varist der letzte Punkt.
Wenn die Shell all diese Globs erweitert hätte, wäre sie ungefähr so gelaufen:
mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var
Wie /vardas letzte Element in der Liste wurde alles darin verschoben.
Warum /var/bin/suFehler mit/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
Fast alle Binärdateien unter Linux sind dynamisch mit verknüpft ld-linux. ld-linuxist die Bibliothek, die für das Laden der anderen Bibliotheken verantwortlich ist, die von einer Binärdatei benötigt werden. Auf Ihrem System lebt dies bei /lib64/ld-linux-x86-64.so.2. Seit dieses Verzeichnis verschoben wurde, funktioniert jede dynamisch verknüpfte ausführbare Datei nicht mehr.
Der Grund, warum Busybox funktioniert, ist, dass Busybox statisch verknüpft ist. Es wird nicht verwendet ld-linux.
/var/bin/sudirekt rennen ?