Schalten Sie Ihren Computer nicht aus.
Hast du noch eine Laufschale? Ist es Bash? Wenn ja, bist du in Ordnung. (Aber mach das nicht noch einmal.)
Ausführen:
sudo cp /proc/$$/exe /bin/bash
Voila, alles ist gut.
Da jemand in den Kommentaren bezweifelt, dass das funktioniert:
[[email protected] ~]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
[[email protected] ~]$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[[email protected] ~]$ echo $0
-bash
[[email protected] ~]$ sudo rm /bin/bash
[[email protected] ~]$ bash
-bash: /bin/bash: No such file or directory
[[email protected] ~]$ sudo su -
su: /bin/bash: No such file or directory
[[email protected] ~]$ sudo cp /proc/$$/exe /bin/bash
[[email protected] ~]$ bash
[[email protected] ~]$ exit
[[email protected] ~]$ sudo su -
[[email protected] ~]# logout
[[email protected] ~]$
bash
ist eine Shell, wahrscheinlich Ihre System-Shell, also passieren jetzt seltsame Dinge, während Teile der Shell noch im Speicher sind. Sobald Sie sich abmelden oder neu starten, stecken Sie in größeren Schwierigkeiten.
Das erste, was Sie also tun sollten, ist, Ihre Shell auf etwas Sicheres umzustellen. Sehen Sie, welche Shells Sie installiert haben
cat /etc/shells
Ändern Sie dann Ihre Shell zu einer der anderen dort aufgeführten Shells, zum Beispiel
chsh -s /bin/dash
Aktualisieren, weil Sie bereits neu gestartet haben:
Sie haben Glück, dass der Bootvorgang heutzutage nicht mehr auf bash
angewiesen ist , also startet Ihr System, Sie können einfach keine Befehlszeile erhalten. Aber Sie können einen Editor starten, um /etc/passwd
zu bearbeiten und ändern Sie die Shell in root
Zeile ab /bin/bash
bis /bin/dash
. Abmelden und erneut anmelden. Nehmen Sie einfach keine weiteren Änderungen in dieser Datei vor, oder Sie können Ihr System komplett durcheinanderbringen.
Versuchen Sie dann, bash
neu zu installieren mit
apt-get --reinstall install bash
Wenn alles geklappt hat, können Sie chsh
zurück zu bash
.
Abschließend:Ich denke, kali ist eine hochspezialisierte Distribution, wahrscheinlich nicht geeignet für Leute, die versehentlich ihre Shell überschreiben. Da dieser Satz als unhöflich und hart bezeichnet wurde, sollte ich hinzufügen, dass ich ihn aus meiner eigenen Erfahrung heraus geschrieben habe. Als ich jünger war, habe ich mein System ruiniert, weil mir niemand gesagt hat, ich solle es vermeiden, als Root herumzuspielen.
Wenn Sie sich anmelden, aber kein Terminal öffnen oder anderweitig auf eine Shell zugreifen können, aber über die GUI auf Dateien zugreifen können, gehen Sie zu /bin
, suchen Sie nach Dateien, deren Namen mit sh
enden (aber nicht .sh
) und führen Sie eine aus (durch Doppelklicken oder Rechtsklicken). Suchen Sie insbesondere nach Folgendem:
sh
dash
ash
ksh
(oderksh
gefolgt von einer Zahl; B.ksh93
)zsh
yash
oder, als letztes Mittel,
tcsh
odercsh
Wenn Sie eine Shell zum Laufen bringen können, versuchen Sie es mit der Antwort von Philippos.
Ein anderer Ansatz besteht darin, in den Einzelbenutzermodus zu booten, indem Sie diesen Anweisungen folgen, aber init=/bin/sh
angeben (oder eine der anderen Shells) anstelle von init=/bin/bash
.