Если ваша система 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
прямо?