題 為什麼Linux允許用戶刪除根目錄? [重複]


這個問題在這裡已有答案:

當我第一次在我的計算機上安裝Linux時,我總是喜歡使用root,因為我不需要添加 sudo 並在每次執行需要root權限的命令時鍵入密碼。

所以有一天,我只想刪除一個目錄,然後跑了 rm -rf /,所以我的系統崩潰了。我想知道為什麼Linux設計師不禁止這麼危險的命令。


4
2018-04-16 15:32


起源


在Windows上也不禁止它。 - Daniel B
我相信現代Linux發行版不允許這樣做 --no-preserve-root - Vinayak
@DanielB我認為這與Windows無關 - fangxing
superuser.com/questions/640147/... - Mokubai♦
我不認為這個問題與鏈接問題重複。這就是為什麼Linux允許的 rm -rf /而另一個則是問如何阻止人們用腳射擊自己。 - Ben N


答案:


為什麼不允許你對你自己的電腦做任何你想做的事情?登錄為 root 或使用 sudo 對機器說:“我知道我在做什麼。”防止人們做可疑的事情通常也會阻止他們做出聰明的事情, 正如Raymond Chen所表達的那樣

此外,有一個非常好的理由允許用戶火炬根目錄:通過完全擦除操作系統和文件系統來停用計算機。 (危險! 在某些UEFI系統上, rm -rf / 能夠 磚塊也是物理機器。)在一個內部做一個合理的事情 chroot 監獄

顯然,人們不小心跑了命令,增加了一個安全功能: rm -rf / 在大多數係統上什麼也不做 --no-preserve-root 也供應,有 沒門 你可以輸入 因為失誤。這也有助於防範 寫得不好但善意的shell腳本


17
2018-04-16 17:24





TL; DR: 最簡單的答案是:為什麼不呢?它只是一個功能,是操作系統提供的工具。您自己承擔風險,知道自己在做什麼。


說明

使用root作為您的用戶是一個 非常糟糕的主意,因為您執行的所有操作都是以提升的權限運行,這是一個巨大的安全漏洞。

例如,如果您下載了惡意程序,或者計算機中安裝的軟件存在一些嚴重錯誤,則可能會對您的文件甚至硬件造成嚴重破壞。

即使你有點懶得寫作 sudo 很多時候,有一些命令如 sudo -i,您可以使用一段時間,然後返回到您的正常權限狀態。但除非您有更多使用終端的經驗,否則我不建議這樣做。

但是,這不是Linux及其開發人員所致。實際上,正如@DanielB所述, Windows也允許這樣做。你有自由和工具來做到這一點,但這並不意味著你必須這樣做。

有些包可以防止你 rm你的根目錄,比如 安全-RM。如果您認為再次發生風險,這可能是一個不錯的選擇。
其他解決方案和解決方案,如 rm的參數 --preserve-root 在討論中 這個服務器故障問題。


8
2018-04-16 15:55



謝謝你的好聽的答案,我說'為什麼Linux ......',只是因為我主要使用Linux。抱歉我的英語很差:), - fangxing
沒問題!這只是為了澄清它是在其他操作系統上發生的事情,這是一種自由......以防萬一。 ;) - Hewbot
downvoted,因為它沒有解釋問題。 - toogley
@toogley回答一個沒有像這樣的具體答案的問題有點困難;我還是把這個問題更新得更精確了。感謝您的反饋! :) - Hewbot