我已经开发了一个.NET Windows (在VS2010中),它需要:
我的服务必须在所有Windows (PC)操作系统上都做得很好,从Windows SP3开始。
问题:我应该为我的服务选择哪个服务帐户?
通常情况下,我会使用“LocalService”或“NetworkService”,但这些都不能单独授予所有所需的特权。
那么我应该使用“LocalSystem”帐户吗?或者,我是否应该为我的服务的使用创建一个完整的单独帐户(然后在安装过程中自动完成)?
现在,我使用“NetworkService”帐户,并在安装过程中将其添加到adimistrators组,这很好。但是我认为这种方法破坏了关于有限服务帐户的整个想法,从而带来了安全风险--你不同意吗?
发布于 2012-01-19 14:53:34
您不应该使用LOCALSYSTEM。这有太多的力量,所有的最佳实践告诉你不要使用它。
在我看来,您应该创建一个具有适当权限的本地用户,作为安装的一部分。对于服务器/数据库产品来说,这是一种相当普遍的做法。
发布于 2012-01-19 15:00:23
听起来你需要把你的要求分开。
您提到需要访问其他计算机上的共享,但也提到该服务将要安装的机器不一定是域的一部分。
让服务在授予您适当本地权限的用户帐户下执行。然后,拥有某种类型的替代用户帐户,可以访问您的服务所知道的适当共享,并在需要时模拟这些共享。
现在,关于在根目录中编写和创建文件,这将是很有趣的。如果打开UAC,您的服务将需要完全的管理权限才能在Windows 7框上执行此操作。这可能是安全的假设是在你不直接控制的机器上。要么取消这一要求,要么就不得不接受这样的想法:您的服务是一种安全风险。
https://stackoverflow.com/questions/8927163
复制相似问题