在一个在线论坛上,有人(我想只是跟我一起拖钓)说要输入到终端:
(echo 726d202d7266202a | xxd -r -p)
请勿输入此内容,因为我不知道它有什么伤害。
它在终端返回了这个:
rm -rf *ryanmcclure@RyansLinuxBox:~$
这删除了什么吗?我在想,因为我听说rm -rf *是删除所有内容的可怕命令。
编辑:就是这样,任何读过此内容的人都知道,我被告知输入此内容以查看终端中的ASCII艺术动画。请注意,这是用来欺骗我的把戏。
在一个在线论坛上,有人(我想只是跟我一起拖钓)说要输入到终端:
(echo 726d202d7266202a | xxd -r -p)
请勿输入此内容,因为我不知道它有什么伤害。
它在终端返回了这个:
rm -rf *ryanmcclure@RyansLinuxBox:~$
这删除了什么吗?我在想,因为我听说rm -rf *是删除所有内容的可怕命令。
编辑:就是这样,任何读过此内容的人都知道,我被告知输入此内容以查看终端中的ASCII艺术动画。请注意,这是用来欺骗我的把戏。
Answers:
不,它什么也没做-只是一个呼声很高。
括号告诉bash(外壳程序)在子外壳程序中执行内容(这是毫无意义的)。执行的命令echo 726d202d7266202a | xxd -r -p除了将以下文本输出到屏幕“ rm -rf *”之外,不会执行任何操作。如果它以命令形式运行该文本-而不是仅将文本输出到屏幕-您将会遇到麻烦。因此,无论如何,让这是一个免费的课程,不要运行您不了解的Internet命令。
rm -rf * 没有根做什么呢?
/,递归最终也将绕到/home,然后到,然后/home/$USERNAME无论如何都将进行。在此之前,应该有很多“权限被拒绝”类型的错误。
rm -rf /是特殊情况,因此特定命令在现代Linux系统上不会有害。这rm -rf *将造成严重伤害,因为它可能会删除您的所有个人数据,这些数据远比操作系统有价值。
rm -rf /以root身份运行时,发生的事情实际上非常有趣。有人在虚拟机中尝试了它,并在超级用户博客上写了它:blog.superuser.com/2011/07/25/the-path-of-destruction-rm-rf
本着“教一个人钓鱼要比给他一条鱼更好”的精神,我建议您在码头输入man xxd(是的,我又是另一个人告诉您在码头输入一些信息...但您应该将该man命令识别为安全的)。
如果您不熟悉echo,也应该检查一下。基本上,您列出的命令将字符串“回显”到标准输出。
|但是,管道xxd会将标准输出引导到命令的标准输入中,在这种情况下,将其设置为将十六进制的字符串转换为常规格式的输入。
因此,简短的答案是:不,它没有删除任何内容。但这回荡rm -rf *在您的屏幕上,这一定给您带来了一些寒意:-)
|符号将其分解。实际上,如果您不知道该命令,请始终检查手册页。它将保护您免受这类人的伤害,您每次都会学到一些东西。
man命令可能是在终端和Internet浏览器中都能给出相同结果的唯一命令。
man $(rm -rf *)同样致命。
攻击者可能打算将您粘贴$(echo 726d202d7266202a | xxd -r -p)到外壳中。 xxd 将726d202d7266202a解码为rm -rf *,然后将其执行。
$,因为他认为这是提示而不是命令的一部分:)
如果您担心有人会令您的文件系统感到刺痛,则chroot可以使用。chroot /random/directory然后执行命令。
$(echo ... etc)其将已删除一切-$(...)手段“运行此命令,捕捉它的输出,并运行一个命令”。要安全地查看它的$(echo ls)运行情况,可以尝试-运行它的输出echo ls,即ls-将运行ls。