Przypadkowo nadpisałem plik / bin / bash głupim skryptem, który chciałem umieścić w folderze / bin.
Jak odzyskać zawartość tego pliku? Czy istnieje sposób na znalezienie zawartości w Internecie i skopiowanie jej z powrotem? Jakie są moje opcje, biorąc pod uwagę, że terminal wyświetla błąd mówiący o „Zbyt wielu dowiązaniach symbolicznych?”
Nadal jestem nowicjuszem w tego typu sprawach i doceniam całą pomoc, jaką mogę uzyskać.
Edycja: Zapomniałem wspomnieć, że korzystam z Kali 2.2 Rolling, która jest w zasadzie debianem z kilkoma dodatkowymi funkcjami.
Edycja 2: Ponownie uruchomiłem maszynę, ponieważ nie zdałem sobie sprawy z mojego błędu jeszcze kilka dni temu. To sprawia, że jest to trochę trudniejsze.
linux
bash
kali-linux
data-recovery
GarrukApex
źródło
źródło
$HOME/.bin
i dodaj go do swojegoPATH
lub użyj,/usr/local/bin
jeśli potrzebujesz, aby obejmował cały system. Lub, jeszcze lepiej, zbuduj pakiet.Odpowiedzi:
bash
jest powłoką, prawdopodobnie twoją powłoką systemową, więc teraz dzieją się dziwne rzeczy, podczas gdy niektóre części powłoki są nadal w pamięci. Po wylogowaniu lub ponownym uruchomieniu komputera będziesz miał większe problemy.Pierwszą rzeczą powinna być zmiana powłoki na bezpieczną. Zobacz, jakie powłoki zainstalowałeś
Następnie zmień powłokę na jedną z innych wymienionych tam powłok, na przykład
Zaktualizuj, ponieważ już zrestartowałeś:
Masz szczęście, że w dzisiejszych czasach proces uruchamiania nie jest uzależniony
bash
, więc system uruchamia się, po prostu nie możesz uzyskać wiersza polecenia. Ale możesz uruchomić edytor do edycji/etc/passwd
i zmiany powłoki wroot
linii od/bin/bash
do/bin/dash
. Wyloguj się i zaloguj ponownie. Po prostu nie rób żadnych innych zmian w tym pliku, bo możesz całkowicie zepsuć system.Następnie spróbuj ponownie zainstalować za
bash
pomocąJeśli wszystko się powiedzie, możesz
chsh
wrócić dobash
.Wreszcie: myślę, że kali jest wysoce wyspecjalizowaną dystrybucją, prawdopodobnie nieodpowiednią dla osób, które przypadkowo zastąpią swoją powłokę. Ponieważ zdanie to nazwano niegrzecznym i surowym, powinienem dodać, że napisałem je z własnego doświadczenia. Kiedy byłem młodszy, zrujnowałem mój system, ponieważ nikt mi nie powiedział, żebym nie bałaganił jako root.
źródło
command > /bin/bash ...
kontracommand > (/bin/bash ...)
.Nie wyłączaj urządzenia.
Czy nadal masz działającą powłokę? Czy to bash? Jeśli tak, wszystko w porządku. (Ale nie rób tego więcej.)
Biegać:
Voila, wszystko jest dobrze.
Ponieważ ktoś w komentarzach wątpi, że to działa:
źródło
/bin/sh
lubrbash
)root
uruchomieniucp
. Jednak twarde linki są dobrym punktem.Jeśli możesz się zalogować, ale nie możesz otworzyć terminala lub w inny sposób uzyskać dostępu do powłoki, ale możesz uzyskać dostęp do plików za pośrednictwem GUI, przejdź do
/bin
, wyszukaj pliki, których nazwy kończą się nash
(ale nie.sh
) i uruchom jeden (klikając dwukrotnie lub kliknięcie prawym przyciskiem myszy). W szczególności poszukaj następujących elementów:sh
dash
ash
ksh
(lubksh
po którym następuje liczba; np.ksh93
)zsh
yash
lub w ostateczności
tcsh
lubcsh
Jeśli możesz uruchomić powłokę, wypróbuj odpowiedź Philipposa .
Innym podejściem jest uruchomienie systemu w trybie pojedynczego użytkownika, postępując zgodnie z tymi instrukcjami, ale
init=/bin/sh
zamiast tego podaj (lub jedną z innych powłok)init=/bin/bash
.źródło