誤って/binフォルダに入れようとしたばかばかしいスクリプトで/bin/bashファイルを上書きしました。
このファイルの内容をどのように検索しますか? Webでコンテンツを見つけて再コピーする方法はありますか?端末で「シンボルリンクが多すぎます」というエラーが発生した場合、ここで選択できるものは何ですか?
私はまだこの種の仕事に初めて触れ、私が受けることができるすべての助けに感謝します。
編集:Kali 2.2 Rollingを使用していることに言及するのを忘れました。 Kali 2.2 RollingはほぼDebianですが、いくつかの追加機能があります。
編集2:数日前まで私の間違いを気づかなかったので、コンピュータも再起動しました。これはこれを非常に困難にします。
答え1
コンピュータをシャットダウンしないでください。
まだ実行中のシェルはありますか?バッシュですか?だとしたら大丈夫です。 (しかし、再びそうしないでください。)
ランニング:
sudo cp /proc/$$/exe /bin/bash
見て、すべてが大丈夫です。
コメントの誰かがこれがうまくいくかどうか疑ったので:
[vagrant@localhost ~]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
[vagrant@localhost ~]$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[vagrant@localhost ~]$ echo $0
-bash
[vagrant@localhost ~]$ sudo rm /bin/bash
[vagrant@localhost ~]$ bash
-bash: /bin/bash: No such file or directory
[vagrant@localhost ~]$ sudo su -
su: /bin/bash: No such file or directory
[vagrant@localhost ~]$ sudo cp /proc/$$/exe /bin/bash
[vagrant@localhost ~]$ bash
[vagrant@localhost ~]$ exit
[vagrant@localhost ~]$ sudo su -
[root@localhost ~]# logout
[vagrant@localhost ~]$
答え2
bash
はシェル、おそらくシステムシェルなので、シェルの一部がまだメモリにある間に奇妙なことが起こっています。ログアウトまたは再起動すると、より大きな問題に直面します。
したがって、最初にすべきことは、シェルをセキュアシェルに変更することです。どのシェルがインストールされているか確認してください。
cat /etc/shells
次に、シェルをそこにリストされている他のシェルのいずれかに変更します。
chsh -s /bin/dash
再起動後のアップデート:
幸いなことに、ブートプロセスはそれに依存しないため、システムの起動時にコマンドラインbash
にアクセスできなくなります。ただし、エディタを実行して/etc/passwd
from to lineでシェルを編集および変更できます。ログアウトしてもう一度ログインしてください。このファイルに他の変更を適用しないでください。そうしないと、システムが完全に壊れる可能性があります。root
/bin/bash
/bin/dash
bash
その後、再インストールしてみてください。
apt-get --reinstall install bash
すべてが成功すればchsh
戻ることができますbash
。
最後に、kaliは高度に専門化されたディストリビューションなので、誤ってシェルを上書きした人には適していないと思います。この引用は失礼で過酷であることが知られているので、この記事は私の経験に基づいて書かれていることを付け加えなければなりません。幼い頃には root でいたずらしてはいけないと言った人がいなかったので、文字通りシステムを破壊しました。
答え3
ログインできますが、端末を開くことができないか、シェルにアクセスできないがGUIを介してファイルにアクセスできる場合に移動し、名前で終わる(しかし)ファイルを見つけて/bin
実行します(ダブルクリックまたは右クリック)。具体的には、以下を見つけてください。sh
.sh
sh
dash
ash
ksh
(またはksh
後に数字が続きます。例ksh93
:)zsh
yash
または最後の手段として、
tcsh
またはcsh
シェルを実行できる場合は、お試しください。フィリップスの答え。
別の方法は、次のようにシングルユーザーモードで起動することです。このガイドラインinit=/bin/sh
ただし、代わりに(または他のシェルの1つ)を指定してくださいinit=/bin/bash
。