作为域帐户运行 Windows 服务所需的最低权限 [关闭]
Posted
技术标签:
【中文标题】作为域帐户运行 Windows 服务所需的最低权限 [关闭]【英文标题】:Minimum rights required to run a windows service as a domain account [closed] 【发布时间】:2010-09-15 18:30:36 【问题描述】:有谁知道我需要授予域用户帐户的最低权限才能以该用户身份运行 Windows 服务?
为简单起见,假设服务除了启动、停止和写入“应用程序”事件日志之外什么都不做——即没有网络访问、没有自定义事件日志等。
我知道我可以使用内置的 Service 和 NetworkService 帐户,但由于网络政策到位,我可能无法使用这些帐户。
【问题讨论】:
我在my answer on SU中解释了这一点。 【参考方案1】:两种方式:
编辑服务的属性并设置登录用户。将自动分配相应的权限。
手动设置:转至管理工具 -> 本地安全策略 -> 本地策略 -> 用户权限分配。编辑“作为服务登录”项并在此处添加您的域用户。
【讨论】:
太棒了 - 所以“作为服务登录”是基本服务所需的全部(加上任何特定于服务逻辑的权限,例如访问网络资源)。出于某种原因,我认为需要大量的权利。谢谢 有时,这似乎还不够。我做了这两件事,启动服务失败,出现错误“本地计算机上的Local Admin Group
中有一个域帐户,并且还在Local security policy
中添加了Logon as a service
中的域帐户,但我的服务仍然无法启动。我正在尝试在此域帐户下运行Themes
服务,但收到错误A privilege required to start doesn't exist in service account
【参考方案2】:
我知道该帐户需要具有“作为服务登录”权限。除此之外,我不确定。可以在here找到作为服务登录的快速参考,其中有很多特定权限的信息here。
【讨论】:
【参考方案3】:“BypassTraverseChecking”意味着您可以直接访问任何深层子目录,即使您不具备对中间目录的所有中间访问权限,即它之上的所有目录都朝向根级别。
【讨论】:
【参考方案4】:感谢您的链接,克里斯。我经常想知道诸如“BypassTraverseChecking”之类的特权的具体影响,但从来没有费心去查找它们。
我在运行一项服务时遇到了有趣的问题,并发现在管理员完成初始安装后它无法访问它的文件。在我发现文件问题之前,我一直认为除了登录即服务之外它还需要其他东西。
-
已禁用简单文件共享。
暂时将我的服务帐号设为管理员。
使用服务帐户取得文件的所有权。
从管理员组中删除服务帐户。
重启。
在取得所有权期间,必须禁用从父目录继承权限并沿树递归地应用权限。
但无法找到“给予所有权”选项来避免将服务帐户临时设为管理员。
无论如何,我想我会发布这个,以防其他人走上我正在寻找安全策略问题的同一条道路,而这实际上只是文件系统权限。
【讨论】:
顺便说一句,它不应该拥有文件,它应该只需要文件的读取和执行权限。 有问题的文件包括运行时数据以及静态构建时文件。可以读取/执行静态文件,但需要更新运行时文件、创建新文件和目录、删除文件等。可以在每个目录的基础上准确确定需要什么,但它可能会随着时间的推移而改变发布甚至是修复包,并且非常难以诊断。因此,您是正确的,不需要完全所有权,但从可维护性的角度来看,我仍然建议您拥有所有权。 这很古老,但如果有人遇到它,您通常希望在这种情况下授予“修改”权限。简单总结一下权限: * 文件夹:允许读写文件和子文件夹;允许删除文件夹 * Files:允许读取和写入文件;允许删除文件“所有权”实际上并不授予对文件的任何访问权限,只是授予设置权限的能力(完全控制包括这些权限)。相反,管理员应该拥有完全控制权,以防服务帐户出现问题。以上是关于作为域帐户运行 Windows 服务所需的最低权限 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
为啥“本地系统”帐户缺乏对 NTFS 文件系统的权限(将 java 作为 Windows 服务运行)