小编000*_*000的帖子

危险的 Linux 命令:在哪些方面一个命令是有害的,而另一个命令似乎没有效果?

正如许多人所知,>>操作符会将命令的输出附加到您在其后面放置的任何内容。

我知道它可以用于覆盖文件或将数据添加到文件中,但我也知道它可以以恶意方式使用:如果使用驱动器或分区作为输出,则命令的输出将直接写入驱动器,这可能会损坏该驱动器或分区。

例如,根据我的理解,附加>> /dev/sda到命令会将命令的输出直接附加到/dev/sda.

出于好奇,我设置了一个 Ubuntu VM,并尝试了这个乐趣。该计算机的虚拟驱动器为/dev/vda/dev/vda1其引导分区为 ,/dev/vda2根分区为 ,并且没有单独的分区/home

现在有趣的部分来了:

  • 当我echo "Hello world" >> /dev/vda(以 root 身份)在虚拟机中运行然后重新启动它时,似乎没有任何东西被损坏。重新启动后它启动得很好,之后一切似乎都正常。
  • 但是,当我echo "Hello world" >> /dev/vda1在同一个虚拟机中运行(也以 root 身份)然后重新启动它时,它无法启动。

所以我已经知道为什么写入输出vda1很糟糕(它损坏了启动分区)。我的问题是:为什么附加输出似乎/dev/vda没有做任何事情,但附加输出却会/dev/vda1损害它?是否因为/dev/vda2位于“之后” /dev/vda1,因此传递vda结果会导致命令输出被写入vda2

boot

6
推荐指数
1
解决办法
583
查看次数

标签 统计

boot ×1