Jeśli Twój system został busybox
zainstalowany, możesz użyć tego do przywrócenia rzeczy.
busybox
to plik binarny z wieloma wbudowanymi narzędziami. Rzeczy takie jak mv
, sh
, ls
, itd.
Z twojego komentarza do odpowiedzi Pavela wynika, że wszystko się skończyło /var
. Możesz spróbować zrobić /var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /
. To powinno przywrócić większość systemu do działania. Istnieje kilka takich katalogów, /tmp
które również istnieją /var/tmp
, więc nie można ich po prostu przenosić. Mam nadzieję, że mv
to oni narzekali i zostali sami.
Uzyskiwanie powłoki roota
Wspomniałeś również, że straciłeś powłokę główną, a to su
powoduje ld-linux
błąd biblioteki. Możesz być w stanie użyć następujących elementów:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su
Uwaga: po próbie nie działa. To dlatego, że su
wymaga kilku plików w /etc
( passwd
, pam.d
i inne). Gdyby /etc
nadal były nienaruszone, miałoby to spore szanse na sukces.
Bez zajęty
Jeśli nie masz dostępnego busyboksa, możesz użyć tej samej sztuczki ld-linux jak dla 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} /
Z płyty CD na żywo
Jak wspomniano w komentarzach, jeśli straciłeś powłokę root, to utknąłeś. Zasadniczo, aby to naprawić, potrzebujesz uprawnień roota. Jedynym sposobem, aby się tam dostać, jest posiadanie narzędzia, takiego jak su
lub sudo
zwiększanie uprawnień (oba nie działają w tym momencie), lub przejęcie innego programu, który jest już uruchomiony jako root (w zależności od tego, co jest uruchomione, prawdopodobnie nie jest możliwe).
To pozostawia jedyną opcję, jaką jest live CD. Po uruchomieniu na żywo CD (lub Live USB, lub cokolwiek innego), po prostu zamontuj wolumin główny i przenieś katalogi, których dotyczy problem, z /var
powrotem do ich pierwotnego miejsca zamieszkania /
.
Streszczenie tego, co się stało
folder/*
rozwinąłby się w coś takiego jak folder/foo
i folder/bar
.
/*
rozwinąłby się w coś takiego /bin
/lib32
/lib64
/etc
/home
/root
/var
. Zauważ, że /var
to ostatni element.
Gdy więc powłoka rozszerzy wszystkie globusy, uruchomi się coś takiego:
mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var
Podobnie /var
jak ostatni element na liście, wszystko zostało do niego przeniesione.
Dlaczego /var/bin/su
błędy z/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
Prawie wszystkie pliki binarne w systemie Linux są dynamicznie powiązane ld-linux
. ld-linux
jest biblioteką odpowiedzialną za ładowanie innych bibliotek wymaganych przez plik binarny. W twoim systemie to żyje /lib64/ld-linux-x86-64.so.2
. Ponieważ ten katalog został przeniesiony, żaden dynamicznie połączony plik wykonywalny przestanie działać.
Powodem, dla którego busy jest aktywne, jest to, że zajęty jest statycznie powiązany. Nie używa ld-linux
.
/var/bin/su
bezpośrednio?