Linux 黑话解释:什么是 sudo rm -rf?为什么如此危险?
创始人
2024-03-02 08:35:24
0

当你刚接触 Linux 时,你会经常遇到这样的建议:永远不要运行 sudo rm -rf /。在 Linux 世界里,更是围绕着 sudo rm -rf 有很多梗。

但似乎对于它也有一些混乱的认识。在 清理 Ubuntu 以腾出空间 的教程中,我建议运行一些涉及 sudorm -rf 的命令。一位读者问我,如果 sudo rm -rf 是一个不应该运行的危险的 Linux 命令,我为什么要建议这样做。

因此,我想到了写一篇 Linux 黑话解释,以消除误解。

sudo rm -rf 在做什么?

让我们按步骤来学习。

rm 命令用于 在 Linux 命令行中删除文件和目录

$ rm agatha
$

但是因为有只读的 文件权限,有些文件不会被立即删除。它们必须用选项 -f 强制删除。

$ rm books
rm: remove write-protected regular file 'books'? y
$ rm -f christie
$

另外,rm 命令不能被用来直接删除目录(文件夹)。你必须在 rm 命令中使用递归选项 -r

$ rm new_dir
rm: cannot remove 'new_dir': Is a directory

因此最终,rm -rf 命令意味着递归地、强制删除指定的目录。

$ rm -r new_dir
rm: remove write-protected regular file 'new_dir/books'? ^C
$ rm -rf new_dir
$

下面是上述所有命令的截图。

解释 rm 命令的例子

如果你在 rm -rf 命令前加入 sudo,你就是在删除具有 root 权限的文件。这意味着你可以删除由 root 用户 拥有的系统文件。

所以,sudo rm -rf 是一个危险的 Linux 命令?

嗯,任何删除东西的命令都可能是危险的,如果你不确定你正在删除什么。

rm -rf 命令看作一把刀。刀是一个危险的东西吗?有可能。如果你用刀切蔬菜,那是好事。如果你用刀切手指,那当然是不好的。

rm -rf 命令也是如此。它本身并不危险。它只是用来删除文件的。但是,如果你在不知情的情况下用它来删除重要文件,那就有问题了。

现在来看看 sudo rm -rf /

你知道,使用 sudo,你是以 root 身份运行一个命令,这允许你对系统进行任何改变。

/ 是根目录的符号。/var 表示根目录下的 var 目录。/var/log/apt 指的是根目录的 log 目录下的 apt 目录。

Linux 目录层次表示法

按照 Linux 目录层次结构,Linux 文件系统中的一切都从根目录开始。如果你删除了根目录,你基本上就是删除了系统中的所有文件。

这就是为什么建议不要运行 sudo rm -rf / 命令,因为你会抹去你的整个 Linux 系统。

请注意,在某些情况下,你可能正在运行像 sudo rm -rf /var/log/apt 这样的命令,这可能是没问题的。同样,你必须注意你正在删除的东西,就像你必须注意你正在用刀切割的东西一样。

我在玩火:如果我运行 sudo rm -rf /,看看会发生什么呢?

大多数 Linux 发行版都提供了一个故障安全保护,防止意外删除根目录。

$ sudo rm -rf /
[sudo] password for abhishek:
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe

我的意思是,人是会打错字的,如果你不小心打了 / var/log/apt,而不是 /var/log/apt/var 之间的空格意味着你给出了 /var 目录来删除),你将会删除根目录。(LCTT 译注:我真干过,键盘敲的飞起,结果多敲了一个空格,然后就丢了半个文件系统 —— 那时候 Linux 还没这种故障安全保护。)

使用 sudo rm -rf 时要注意

别担心。你的 Linux 系统会照顾到这种意外。

现在,如果你一心想用 sudo rm -rf / 来破坏你的系统呢?你将必须使用它将要求你使用的 -no-preserve-root 选项与之配合。

不,请不要自己这样做。让我做给你看看。

所以,我在一个虚拟机中运行基本的操作系统。我运行 sudo rm -rf / --no-preserve-root,你可以在下面的视频中看到灯光熄灭(大约 1 分钟)。

清楚了么?

Linux 有一个活跃的社区,大多数人都会帮助新用户。 之所以说是大多数,是是因为有一些的邪恶坏人潜伏着捣乱新用户。他们经常会建议对初学者所面临的最简单的问题运行 rm -rf /。我认为这些白痴在这种邪恶行为中得到了某种至上主义的满足。我会立即将他们从我管理的论坛和群组中踢出去。

我希望这篇文章能让你更清楚地了解这些情况。你有可能仍然有一些困惑,特别是因为它涉及到根目录、文件权限和其他新用户可能不熟悉的东西。如果是这样的话,请在评论区告诉我你的疑惑,我会尽力去解决。

最后,请记住。 不要喝酒胡搞 Don’t drink and root 。在运行你的 Linux 系统时要安全驾驶。


via: https://itsfoss.com/sudo-rm-rf/

作者:Abhishek Prakash 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

开源英雄的窘境:Sudo维...
IT之家 2 月 5 日消息,科技媒体 Linuxiac 昨日(2...
2026-02-05 15:48:18
集特GM0-5603-01...
参数信息 主板:GM0-5603-01 系统:ubuntu-22....
2026-01-27 18:23:35
新买的云服务器如何快速上手...
拿到新云服务器的心情,就像拿到一把新家的钥匙,兴奋之余,可能更多的...
2026-01-26 10:17:31
LIFORME丨真正的深度...
2026-01-25 23:19:30
强强联手!安谋科技Arm ...
1月22日,中国香港——安谋科技(中国)有限公司(以下简称“安谋科...
2026-01-23 12:18:43
2026年度中国AI原生C...
随着人工智能技术的深入发展,传统CRM系统已无法满足企业对智能化、...
2026-01-21 16:17:15

热门资讯

2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...