Linux中國

Linux 黑話解釋:什麼是 sudo rm -rf?為什麼如此危險?

當你剛接觸 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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國