这是我第二次遇到此错误,我正在尝试了解它发生的原因。我的设备是否已被入侵,正如建议的那样?

我正在运行 Ubuntu 22.04

导致错误所采取的步骤:

sudo chmod 600 configfile.yaml (From inside /etc/netplan/)
sudo configfile.yaml (commented out irrelevant line, ctrl-x, yes, saved file)

当我尝试应用我的更改时……

(base) user@device:/etc/netplan$ sudo netplan apply
-bash: /usr/bin/sudo: no such file or directory
(base) user@device: cd /usr/bin
(base) user@device: ls
-bash: /usr/bin/ls: no such file or directory

突然,几乎所有命令都无法运行。虽然 /usr/bin 仍然存在,但许多命令都丢失了。

我的路径变量看起来不错……

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

但我什么也做不了。我尝试重新启动,但无法在任何文件夹中找到初始化文件,只能加载到“initramfs”

run-init: cant execute '/sbin/init': No such file or directory

我不知道问题是什么,但是“root/sbin、root/bin、root/lib”中的许多文件完全丢失了。

从全新安装中复制这些文件夹解决了这个问题,让我可以再次启动,但我试图了解问题发生的原因,如何防止它再次发生,以及我的设备是否由于某些开放端口而被植根。

如果有帮助的话…

第一次发生这种情况时,我尝试运行此文件sudo sh ./script.sh

grep /etc/netplan/configfile.yaml >> output.txt
grep /etc/hostapd/configfile.conf
ip a show wlan0 >> output.txt
echo "Text..." >> output.txt
systemctl enable netplan >> output.txt  # I realized later this does not work, though I am unsure if could have been what caused the issue

我认为问题在于 grep 上缺少“>> output.txt”。它挂起,无限等待,所以我按 ctrl-x,但之前的问题又出现了。

1

  • 阅读文档了解 grep 的工作原理。它在 /something/ 中寻找“模式”,但默认情况下,这个 something 是 stdin,这会导致您描述的“挂起” – 只是 grep 等待输入!您只提供了模式(看起来像文件路径),而不是输入。


    – 


最佳答案
1

(base) user@device: cd /usr/bin
(base) user@device: ls
-bash: /usr/bin/ls: no such file or directory

假设这是在机器使用其常用磁盘运行时发生的,那么这就是问题所在 – 不仅仅是sudo

可能是有什么东西屏蔽了 /usr/bin,文件已被删除,或者文件系统已经消失。

我尝试重新启动,但无法在任何文件夹中找到初始化文件

那么最有可能的是选项 2 或 3。从可移动媒体重新启动,检查磁盘和文件系统是否有错误。