Linux 黑話解釋:什麼是 sudo rm -rf?為什麼如此危險?
當你剛接觸 Linux 時,你會經常遇到這樣的建議:永遠不要運行 sudo rm -rf /
。在 Linux 世界裡,更是圍繞著 sudo rm -rf
有很多梗。
但似乎對於它也有一些混亂的認識。在 清理 Ubuntu 以騰出空間 的教程中,我建議運行一些涉及 sudo
和 rm -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 -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 文件系統中的一切都從根目錄開始。如果你刪除了根目錄,你基本上就是刪除了系統中的所有文件。
這就是為什麼建議不要運行 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 還沒這種故障安全保護。)
別擔心。你的 Linux 系統會照顧到這種意外。
現在,如果你一心想用 sudo rm -rf /
來破壞你的系統呢?你將必須使用它將要求你使用的 -no-preserve-root
選項與之配合。
不,請不要自己這樣做。讓我做給你看看。
所以,我在一個虛擬機中運行基本的操作系統。我運行 sudo rm -rf / --no-preserve-root
,你可以在下面的視頻中看到燈光熄滅(大約 1 分鐘)。
清楚了么?
Linux 有一個活躍的社區,大多數人都會幫助新用戶。 之所以說是大多數,是是因為有一些的邪惡壞人潛伏著搗亂新用戶。他們經常會建議對初學者所面臨的最簡單的問題運行 rm -rf /
。我認為這些白痴在這種邪惡行為中得到了某種至上主義的滿足。我會立即將他們從我管理的論壇和群組中踢出去。
我希望這篇文章能讓你更清楚地了解這些情況。你有可能仍然有一些困惑,特別是因為它涉及到根目錄、文件許可權和其他新用戶可能不熟悉的東西。如果是這樣的話,請在評論區告訴我你的疑惑,我會儘力去解決。
最後,請記住。 不要喝酒胡搞 。在運行你的 Linux 系統時要安全駕駛。
via: https://itsfoss.com/sudo-rm-rf/
作者:Abhishek Prakash 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive