為什么Linux允許用戶刪除根目錄?如果刪了會怎樣?
為什么Linux允許用戶刪除根目錄?這個問題看上去也并不是一個吸引人的話題,很多學習Linux的朋友可能也沒意識到這個問題,對于Linux這個精細的系統,很多較危險的命令都做了一定的防范,但是為什么最危險的命令卻沒有禁止執行!
一個朋友今天突然問我這個問題,我一時也回答不出,大多數情況下我們沒有人會執行這個命令,這會破壞我們的操作系統,但是這種情況又比較容易發生,那么這個命令可以執行的原因出于偶然?
經過在一些社區的尋找,終于在一個網站上看到Ben N的回答,他的回答如下:
以root身份登錄或使用sudo,實際上是在對機器說:“我知道我在做什么。”防止人們做出可疑事情通常也會阻止他們做出聰明的事情。
此外,還有一個非常好的理由允許用戶對根目錄進行操作:徹底刪除操作系統和文件系統以使計算機退役。(危險!在某些UEFI系統上,rm -rf / 也可能會損害物理機器。)
顯然,人們不小心執行了這個命令,以至于增加了一個安全功能。rm -rf /在大多數系統上什么也不做,還提供了-no-preserve-root,并且你無法偶然輸入。這也有助于防范寫得不好但是意圖良好的shell腳本。

意思就是如果沒有指定–no-preserve-root這個參數,GNU rm 將拒絕執行這個命令,并且只輸入rm -rf /也并不會執行刪除根目錄下文件,小E在Ubuntu上進行了測試,測試結果如下所示:

我執行了rm -rf /*的結果如下,正在瘋狂的刪除系統文件

但是過了一會沒有反應了,我按下Ctrl + C停止,頁面如下,還是可以出現輸入框

但是一些命令無法使用,但是到可以隨意切換目錄

這就意味著有些系統文件還是刪不掉的,執行一些相關命令看樣子還是可以執行的,所以正如Ben N所說,當你使用root用戶登錄,或者使用sudo使用這條命令時 ,就在對系統表示“我知道我能做什么,我很清楚自己做的事情意味著什么”或者大家也可以這樣認為Linux在設計這條危險的命令時,并沒有屏蔽,是因為在我想讓我的電腦退役時,刪除電腦的文件。
所以在一般使用Linux是,一般不要使用權限過大的用戶,對于一些常需要操作的目錄大家可以使用root用戶設置權限為777,或者是將你常用的用戶加入root用戶組等等,這樣也方便操作,也能防止一些初學者的誤操作導致系統崩潰等。