Jeśli nadal masz powłokę root, możesz mieć szansę naprawić swój system. Powiedzmy, że przeniósł wszystkich wspólnych katalogów ( /bin, /etc, /lib, /sbin, /usr- są to te, które mogłyby spowodować odzyskanie trudną) pod /oops.
Nie będziesz mógł wydać mvpolecenia bezpośrednio, nawet jeśli podasz pełną ścieżkę /oops/bin/mv. To dlatego, że mvjest dynamicznie powiązany ; ponieważ /libkatalog został przeniesiony , mvnie można go uruchomić, ponieważ nie można znaleźć bibliotek, które stanowią część jego kodu. W rzeczywistości jest nawet gorzej: mvnie można znaleźć dynamicznego modułu ładującego /lib/ld-linux.so.2 (nazwa może się różnić w zależności od architektury i wariantu unix, a katalog może mieć inną nazwę, taką jak /lib32lub /lib64). Dlatego, dopóki nie przeniesiesz /libkatalogu z powrotem, musisz jawnie wywołać konsolidator i określić ścieżkę do przeniesionych bibliotek. Oto polecenie przetestowane na ściśnięciu Debiana i386.
export LD_LIBRARY_PATH=/oops/lib:/oops/lib/i386-linux-gnu
/oops/lib/ld-linux.so.2 /oops/bin/mv /oops/* /
Może być konieczne dostosowanie tego nieco w przypadku innych dystrybucji lub architektur. Na przykład dla CentOS na x86_64:
export LD_LIBRARY_PATH=/oops/lib:/oops/lib64
/oops/lib64/ld-linux-x86-64.so.2 /oops/bin/mv /oops/* /
Kiedy coś spieprzysz /lib, pomoże Ci mieć statycznie połączony zestaw narzędzi. Niektóre dystrybucje (nie wiem o CentOS) zapewniają statycznie połączoną kopię Busybox . Jest też sash , samodzielna powłoka z wieloma wbudowanymi poleceniami. Jeśli masz jeden z nich, możesz odzyskać stamtąd. Jeśli nie zainstalowałeś ich wcześniej, jest za późno.
# mkdir /oops
# mv /lib /bin /oops
# sash
Stand-alone shell (version 3.7)
> -mv /oops/* /
> exit
Jeśli nie masz już powłoki roota, ale nadal nasłuchujesz demona SSH i możesz zalogować się bezpośrednio jako root przez ssh, a masz jeden z tych statycznie połączonych zestawów narzędzi, możesz być w stanie ssh. może działać, jeśli zostały przeniesione /libi /bin, ale nie /etc.
ssh root@broken.example.com /oops/bin/sash
root@broken.example.com's password:
Stand-alone shell (version 3.7)
> -mv /oops/* /
Niektórzy administratorzy zakładają alternatywne konto ze statycznie połączoną powłoką lub zmuszają konto root do korzystania ze statycznie połączonej powłoki, tylko dla tego rodzaju problemów.
Jeśli nie masz root-a i nie podjąłeś żadnych środków ostrożności, będziesz musiał uruchomić system z Live CD / USB na Linuksa (każdy będzie działał tak długo, jak będzie wystarczająco nowy, aby mieć dostęp do twoich dysków i systemów plików) i przenieś pliki z powrotem.