Если ваша система busyboxустановлена, вы можете использовать это, чтобы вернуть вещи обратно.
busyboxэто бинарный файл со множеством стандартных утилит, встроенных в него. Такие вещи , как mv, sh, lsи т.д.
Из вашего комментария к ответу Павла кажется, что все закончилось /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, вы можете использовать тот же трюк 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. Загрузившись на live CD (или на live 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прямо?