关于Local System/Local Service/Network Service账户
部署或安装系统服务时需要指定服务运行的账户。一般地,可选择Local System、Local Service或Network Service账户。
Local System/Local Service/Network Service账户的区别在于每个账户的权限(Rights)不同。在Windows 2003和Windows XP之前,Service几乎都是运行在Local System账户下;从Windows 2003和WindowsXP开始,系统增加了Local Service和 Network Service账户。为什么要增加这两个新的内置账户?如何为Service选择账户?
在回答这两个问题之前,先说明两个基本概念:
1)一个服务(Service)所具有的权限取决于为该服务制定账户的权限;
2)某些服务允许与客户端(Client)进行交互。例如 SQL Server 服务能够接收并执行客户端提供的命令,特别地,用户能够利用SQL Server中存储过程 xp_cmdshell 执行用户命令。
明白上面两个基本概念后,如果将一个服务指定咋Local System账户下运行,你很容易推测出这做的后果!因为Local System内置账户(正式的账户名称是NT AUTHORITY\SYSTEM )是一个具有非常高特权的账户。一旦恶意用户利用运行在Local System下的可交换服务对计算机发动攻击,那将是十分危险的。与Local System账户相比,Local Service/Network Service账户所具有的权限要少很多。在Windows 2003或XP设置这两个账户主要的目的就是为了规避在Local System下运行服务所带来的风险。具体例子,请参考http://windowsitpro.com/systems-management/running-services-under-system-or-administrator给出的描述
微软在Windows 2003或XP中增加的Local Service 和 Network Service 这两个账户采用了最小权限(Minimal Authority)原则。至于Local Service和Network Service之间有差异,可以参考 Difference between local service account and network service account in windows server with respect to SQL Server 2005