Gar*_*pex 27 linux bash data-recovery kali-linux
我不小心用我打算放在 /bin 文件夹中的愚蠢脚本覆盖了 /bin/bash 文件。
如何取回该文件的内容?有没有办法可以在网上找到内容,然后将它们复制回来?考虑到终端在谈论“符号链接太多”时出现错误,我在这里有什么选择?
我仍然是这种事情的新手,我很感激我能得到的所有帮助。
编辑:我忘了提到我在 Kali 2.2 Rolling 上,它几乎是带有一些附加功能的 debian。
编辑 2:我也重新启动了机器,因为直到几天前我才意识到我的错误。这使得这变得相当困难。
Wil*_*ard 67
不要关闭你的机器。
你还有一个正在运行的shell吗?是bash吗?如果是这样,你很好。(但不要再这样做了。)
跑:
sudo cp /proc/$$/exe /bin/bash
Run Code Online (Sandbox Code Playgroud)
瞧,一切都很好。
由于评论中有人怀疑这是否有效:
sudo cp /proc/$$/exe /bin/bash
Run Code Online (Sandbox Code Playgroud)
Phi*_*pos 38
bash是一个 shell,可能是你的系统 shell,所以现在奇怪的事情发生了,而 shell 的一部分仍然在内存中。一旦您注销或重新启动,您将陷入更深的麻烦。
所以第一件事应该是把你的外壳改成安全的东西。看看你安装了哪些shell
cat /etc/shells
Run Code Online (Sandbox Code Playgroud)
然后将您的外壳更改为此处列出的其他外壳之一,例如
chsh -s /bin/dash
Run Code Online (Sandbox Code Playgroud)
更新,因为您已经重新启动:
您很幸运,现在启动过程不依赖于bash,因此您的系统启动时,您只是无法获得命令行。但是您可以启动一个编辑器来编辑/etc/passwd和更改行中的 shellroot从/bin/bash到/bin/dash。注销并重新登录。只是不要对该文件进行任何其他更改,否则您可能会完全弄乱您的系统。
然后尝试重新安装bash使用
apt-get --reinstall install bash
Run Code Online (Sandbox Code Playgroud)
如果一切顺利,您可以chsh回到bash.
最后:我认为,kali 是一个高度专业化的发行版,可能不适合不小心覆盖其外壳的人。由于这句话被称为粗鲁和刺耳,我应该补充说我是根据自己的经验写的。当我年轻的时候,我确实毁了我的系统,因为没有人告诉我避免以 root 身份乱搞。
如果您可以登录,但无法打开终端或以其他方式访问 shell,但您可以通过 GUI 访问文件,请转到/bin,查找名称以sh(但不是.sh)结尾的文件并运行一个(通过双击或右键单击)。特别是,寻找以下内容:
shdashashksh?(或ksh后跟一个数字;例如, ksh93)zshyash或者,作为最后的手段,
tcsh?或者csh如果您可以运行 shell,请尝试Philippos 的回答。
另一种方法是按照这些说明启动到单用户模式,
但指定init=/bin/sh(或其他 shell 之一)而不是init=/bin/bash.
| 归档时间: |
|
| 查看次数: |
34754 次 |
| 最近记录: |