Якщо ваша система 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
все-таки були недоторканими, це мала б хороші шанси на успіх.
Без зайнятості
Якщо у вас немає вільної скриньки, ви можете використовувати той самий фокус 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} /
З живого компакт-диска
Як обговорювалося в коментарях, якщо ви втратили кореневу оболонку, ви сильно застрягли. В основному для того, щоб виправити це, вам потрібні привілеї root. Єдиний спосіб потрапити туди - це утиліта, така як su
або sudo
ескалація ваших дозволів (обидва вони нефункціональні на даний момент), або викрадення іншої програми, яка вже працює як root (залежно від того, що працює, мабуть не можливо).
Це залишає єдиний варіант, як живий компакт-диск. Після завантаження на живий компакт-диск (або на живий 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
. З моменту переміщення цього каталогу будь-який динамічно пов'язаний виконуваний файл більше не працюватиме.
Причина зайнятості працює в тому, що зайнятий ящик статично пов'язаний. Це не використовує ld-linux
.
/var/bin/su
безпосередньо?