システムがbusyboxインストールされている場合は、これを使用して元に戻すことができます。
busybox多くの標準ユーティリティが組み込まれたバイナリです。物事のようなmv、sh、ls、など
Pavelの回答に対するコメントから、すべてがに終わったように思えます/var。やってみることができ/var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /ます。これで、システムのほとんどが再び動作可能になります。として/tmpも存在するようなディレクトリがいくつかある/var/tmpため、単に移動することはできません。うまくいけば、それらはmv不平を言ったものであり、彼らは一人に残されました。
ルートシェルを取得する
また、ルートシェルを失ったとのことsuで、ld-linuxライブラリエラーが発生しています。以下を使用できる場合があります。
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su
注:これを試みても機能しません。これは、su内のいくつかのファイルが必要です/etc(passwd、pam.d、など)を。/etcそれでも元のままであれば、これは成功する可能性が高いでしょう。
busyboxなし
busyboxが利用できない場合は、次の場合と同じld-linuxトリックを使用できる場合があります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} /
ライブCDから
コメントで説明したように、ルートシェルを失った場合、かなり行き詰まっています。基本的にこれを修正するにはroot権限が必要です。そこにたどり着く唯一の方法は、パーミッションなどのユーティリティを用意するsuかsudo、これらを現時点でエスカレートするか、すでにrootとして実行されている別のプログラムをハイジャックすることです(何が実行されているかによって異なります)。
これにより、唯一のオプションがライブCDになります。ライブCD(またはライブUSBなど)で起動したら、ルートボリュームをマウントし、影響を受けるディレクトリ/varをの元のホームに戻し/ます。
何が起こったかの概要
folder/*folder/fooおよびなどの何かに拡張されますfolder/bar。
/*のようなものに拡張されたでしょう/bin /lib32 /lib64 /etc /home /root /var。それ/varが最後のアイテムであることに注意してください。
したがって、シェルがこれらのグロブをすべて展開すると、次のようになります。
mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var
/varリストの最後のアイテムと同様に、すべてがそれに移動しました。
/var/bin/suエラーの理由/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
Linuxのほとんどすべてのバイナリが動的にリンクされld-linuxます。ld-linuxバイナリが必要とする他のライブラリをロードするライブラリです。あなたのシステムでは、これはに住んでい/lib64/ld-linux-x86-64.so.2ます。このディレクトリが移動したため、動的にリンクされた実行可能ファイルは機能しなくなります。
busyboxが機能する理由は、busyboxが静的にリンクされているためです。使用しませんld-linux。
/var/bin/su直接走れない?