错误地rm /*
以身份运行root
。
结果,它确实从 Linux 根目录中删除了所有文件,但保留了文件夹。(这是好消息)
lrwxrwxrwx 1 root root 7 Aug 5 2020 bin -> usr/bin
lrwxrwxrwx 1 root root 7 Aug 5 2020 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Aug 5 2020 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 Aug 5 2020 lib64 -> usr/lib64
lrwxrwxrwx 1 root root 10 Aug 5 2020 libx32 -> usr/libx32
lrwxrwxrwx 1 root root 8 Aug 5 2020 sbin -> usr/sbin
因为在 Ubuntu 22.04 中 /bin 是 /usr/bin 的符号链接,所以它也被删除了。因此,如果我尝试通过 bash 运行任何命令,它都会因错误而失败:
如果我尝试使用 /usr/bin/bash,则会失败:
# /usr/bin/bash
bash: /usr/bin/bash: No such file or directory
但文件确实存在:
/usr/bin/bash/
bash: /usr/bin/bash/: Not a directory
# /usr/bin/bas
base32 base64 basename basenc bash bashbug
看起来,主要问题是当前 bash 尝试运行使用/bin/bash
来运行命令:
# ldd ls
bash: /usr/bin/ldd: /bin/bash: bad interpreter: No such file or directory
看起来,bash 尝试通过/bin/bash
解释器执行命令,但由于这个符号链接消失而失败。
看到答案https://askubuntu.com/a/906692,但第一步就失败了:
#sudo /proc/$$/exe
bash: /usr/bin/sudo: No such file or directory
或者
/proc/$$/exe
bash: /proc/1872780/exe: No such file or directory
再次,由于问题/bin/bash: bad interpreter
有没有办法使用不同的解释器在 bash 中运行命令或以某种方式更改解释器路径?
Shebangs 似乎不起作用,或者可能是我使用方式不正确。
另外,我知道可以使用 liveCD 进行恢复,但它是远程系统,我还要再过一个月才能使用它。