我认为Linux更安全的唯一原因是因为它是开源的,所以理论上错误会很快被捕获并修复.
我对操作系统的工作原理有所了解,但还没有深入研究Linux和Windows如何实现他们的操作系统.有人可以解释使基于Linux的系统更安全的差异吗?
解决方法
我可能会因为成为“微软的辩护者”而受到抨击,但是这个线程非常倾向于关于“Windows”的概括并非如此.
Windows 1.0 – 3.11,95,98和ME基于DOS.这种操作系统在正式意义上没有任何安全性(受保护的地址空间,内核/用户模式分离等).幸运的是,当我们今天谈论“Windows”时,我们并没有谈论这些操作系统.
Windows NT系列操作系统(Windows NT 3.5,3.51,4.0,2000,XP,2003,Vista,2008和7)自1992年首次发布以来,已经设计了一个非常合理的安全系统.操作系统是考虑到TCSEC“橙皮书”的设计,虽然并不完美,但我认为它的设计和实施设计得相当好.
> Windows NT从一开始就是“多用户”(尽管多个用户同时从同一服务器接收图形用户界面的功能直到Windows NT 3.51时代的Citrix WinFrame才发生).存在内核/用户模式分离,地址空间保护依赖于MMU和cpu的底层硬件功能. (我会说它非常“Unix-y”,但实际上它非常“VMS-y”.)
> NTFS中的文件系统权限模型非常“丰富”,虽然它有一些相对于“继承”的瑕疵(或缺少它 – 见How to workaround the NTFS Move/Copy design flaw?),但直到过去10年左右才发生Unix-样式操作系统实现了类似的功能. (Novell NetWare在这一方面击败了微软,但我认为MULTICS让他们都击败了……>微笑<)
>服务控制管理器,包括控制访问启动/停止/暂停服务程序的权限系统,设计得非常好,并且在设计上更加健壮,各种“init.d”脚本“架构”(更像是“绅士的”协议“)在许多Linux发行版中.
>执行对象管理器(参见http://en.wikipedia.org/wiki/Object_Manager_(Windows)),它与/ proc文件系统和/ dev文件系统相结合,具有类似于文件系统的ACL模型,并且比我知道的任何权限模型都要丰富得多for / proc或/ dev在任何Linux发行版上.
>虽然我们可以讨论注册表的优点和缺点,但注册表中密钥的权限模型比在/ etc目录中设置文件权限的模型要精细得多. (我特别喜欢Rob Short的评论:他的“Behind the Code”访谈中的注册表:http://channel9.msdn.com/shows/Behind+The+Code/Rob-Short-Operating-System-Evolution Rob最初是Windows注册表背后的主要人物之一,我认为可以说他不一定很开心.结果是.)
Linux本身只是一个内核,而Windows则更适合Linux发行版.你比较苹果和橘子来比较它们.我同意Windows比某些基于Linux的系统更难以“剥离”.另一方面,一些Linux发行版也出现了许多“废话”.随着Windows的各种“嵌入式”风格的出现,有可能(尽管不是普通大众)构建Windows的“发行版”,其行为与Microsoft默认值不同(不包括各种服务,更改默认权限等) .
各种版本的Windows都有一些选择不当的默认设置,允许未经授权的用户获得权限,拒绝服务攻击等的错误.Unix内核(以及默认以root身份运行的大量基于Unix的应用程序)已经拥有同样的问题.自Windows 2000以来,微软做了一项了不起的工作,它可以更容易地划分应用程序,运行具有最小权限的程序,并删除不需要的操作系统功能.
简而言之,我想我所说的是,就安全性而言,针对您的需求的给定操作系统的特定配置比您使用的操作系统类型更重要. Windows和Linux发行版在安全功能方面具有非常类似的功能.您可以在任一操作系统中应用可靠的安全技术(最小权限,可选组件的有限安装,加密安全身份验证机制等).无论你是否真的这样做 – 这才是最重要的.