linux不是沒有病毒,而是病毒少。病毒少的原因:1、Linux帳號有限制,即使這個病毒成功地感染了這個用戶擁有的一個程序,由於這個用戶權限受限,它進一步傳播的任務也會非常困難;2、Linux網路有限制,其網路程式建構地很保守,沒有讓病毒快速傳播變的可能的高級宏工具;3、Linux的應用軟體和系統軟體幾乎都是開源的,而病毒很難藏身於開源的程式碼中間。
本教學操作環境:linux7.3系統、Dell G3電腦。
linux不是沒有病毒,而是病毒少。
那為什麼Linux系統下病毒這麼少?很多人認為Linux 病毒少是因為Linux不像Windows那麼普及,其實這種觀點很早已經被人批駁過了,一個最有力的論點是:如果寫病毒的人寫Windows 病毒是因為Windows 用戶多而因此破壞性大,那麼Internet 上大多數伺服器都是基於Unix/Linux 的,攻擊這些伺服器,破壞性豈不是更大麼?
Linux帳號限制
對一個二進位的Linux 病毒,要感染可執行文件,這些執行檔對啟動這個病毒的使用者一定要是可寫的。而實際情況通常不是這樣的。實際情況通常是,程式被 root 擁有,使用者透過無特權的帳號運作。而且,越是沒有經驗的用戶,他擁有可執行檔的可能性就越小。因此,越是不了解這種危險的使用者的主目錄越不適合病毒繁殖。
即使這個病毒成功地感染了這個用戶擁有的一個程序,由於這個用戶權限受限,它進一步傳播的任務也會非常困難(當然,對於運行單用戶系統的Linux 新手,這個論證可能不適用。這樣的使用者可能會對root 帳號比較粗心)。
Linux網路限制
Linux 網路程式建構地很保守,沒有讓現在 Windows 病毒如此快速傳播變的可能的高階巨集工具。這並不是 Linux 的固有特徵;它僅僅是兩種用戶基礎的不同和這種不同導致的在這兩種市場中的成功產品的不同的反映。
Linux核心與使用者空間
linux的核心和使用者空間分得很清晰,使用者甚至可以在啟動時定義自己的init =XXX參數使得使用者空間的第一個進程是自己定義的,這種核心空間和核心空間的不耦合是十分重要的,核心在init核心執行緒中透過execve一個使用者進程讓使用者接手系統,這個行程是可以自己定義的,不過一般是/sbin/init進程,這樣的結果就是即使用戶空間全部被注入了,那麼你第一,可以刪除這些骯髒的文件;第二,可以設定一個你自己定義的乾淨的init進程,需要做的就是重新啟動一下系統,一切就搞定了,linux中強大shell命令使得你可以很簡單的備份一份乾淨的無病毒的根文件系統,因此在linux下殺毒將是一件很簡單的事。使用者可以自主控制使用者空間的第一個進程是這裡的要點,在windows下這是很難的,你想替換smss程序,試試看,系統會提示你「請確定磁碟未滿或未被寫入保護而且文件未被使用”,並且system32下的dllcache也是一個讓你又愛又恨的目錄,不信的話,請手動刪除一下IE試試看。
開源的Linux
Linux的應用軟體和系統軟體幾乎都是開源的。這對病毒有兩方面的影響。首先,病毒很難藏身於開源的程式碼中間。其次,對僅有二進位的病毒,一次新的編譯安裝就截斷了病毒一個主要的傳播途徑。雖然 Linux 發行商也提供大量的二進位軟體包,但用戶大都是從發行商提供的可靠的軟體倉庫下載這些軟體包,大都具有 md5 驗證機制,安全性極高。
一個電腦病毒,像生物病毒一樣,要傳播開來,其繁殖速度必須超過其死亡(被消滅)的速度。上述的障礙有效地降低了 Linux 病毒的繁殖速度。我們沒有看到一個真正的Linux 病毒瘋狂傳播,原因就在於存在的Linux 病毒中沒有一個能夠在Linux 提供的敵對的環境中茁壯成長
相關推薦:《Linux視頻教程》
以上是linux為什麼沒有病毒的詳細內容。更多資訊請關注PHP中文網其他相關文章!