Jangan matikan mesin Anda.
Apakah Anda masih memiliki shell berjalan? Apakah itu pesta? Jika demikian, Anda baik-baik saja. (Tapi jangan lakukan ini lagi.)
Jalankan:
sudo cp /proc/$$/exe /bin/bash
Voila, semuanya baik-baik saja.
Karena seseorang di komentar meragukan apakah ini berhasil:
[[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
adalah shell, mungkin shell sistem Anda, jadi sekarang hal-hal aneh terjadi, sementara bagian dari shell masih ada di memori. Setelah Anda keluar atau memulai ulang, Anda akan berada dalam masalah yang lebih dalam.
Jadi hal pertama yang harus dilakukan adalah mengubah shell Anda menjadi sesuatu yang aman. Lihat shell apa yang telah Anda instal
cat /etc/shells
Kemudian ubah shell Anda ke salah satu shell lain yang tercantum di sana, misalnya
chsh -s /bin/dash
Perbarui, karena Anda telah memulai ulang:
Anda beruntung karena saat ini proses boot tidak bergantung pada bash
, jadi sistem Anda boot, Anda tidak bisa mendapatkan baris perintah. Tetapi Anda dapat memulai editor untuk mengedit /etc/passwd
dan ubah shell di root
baris dari /bin/bash
ke /bin/dash
. Keluar dan masuk lagi. Jangan lakukan perubahan lain pada file itu, atau Anda dapat mengacaukan sistem Anda sepenuhnya.
Kemudian coba instal ulang bash
dengan
apt-get --reinstall install bash
Jika semuanya berhasil, Anda dapat chsh
kembali ke bash
.
Terakhir:menurut saya, kali adalah distribusi yang sangat terspesialisasi, mungkin tidak cocok untuk orang yang secara tidak sengaja menimpa cangkangnya. Karena kalimat ini disebut kasar dan kasar, saya harus menambahkan bahwa saya menulisnya berdasarkan pengalaman saya sendiri. Ketika saya masih muda, saya merusak sistem saya karena tidak ada yang mengatakan kepada saya untuk menghindari main-main sebagai root.
Jika Anda dapat masuk, tetapi Anda tidak dapat membuka terminal atau mengakses shell, tetapi Anda dapat mengakses file melalui GUI, buka /bin
, cari file yang namanya diakhiri dengan sh
(namun bukan .sh
) dan jalankan satu (dengan mengklik dua kali atau mengklik kanan). Secara khusus, cari yang berikut ini:
sh
dash
ash
ksh
(atauksh
diikuti dengan nomor; mis.,ksh93
)zsh
yash
atau, sebagai upaya terakhir,
tcsh
ataucsh
Jika Anda dapat menjalankan shell, cobalah jawaban Philippos.
Pendekatan lain adalah mem-boot ke mode pengguna tunggal dengan mengikuti petunjuk ini, tetapi tetapkan init=/bin/sh
(atau salah satu cangkang lainnya) bukan init=/bin/bash
.