作为域帐户运行 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】:

两种方式:

    编辑服务的属性并设置登录用户。将自动分配相应的权限。

    手动设置:转至管理工具 -> 本地安全策略 -> 本地策略 -> 用户权限分配。编辑“作为服务登录”项并在此处添加您的域用户。

【讨论】:

太棒了 - 所以“作为服务登录”是基本服务所需的全部(加上任何特定于服务逻辑的权限,例如访问网络资源)。出于某种原因,我认为需要大量的权利。谢谢 有时,这似乎还不够。我做了这两件事,启动服务失败,出现错误“本地计算机上的 服务已启动然后停止。如果其他服务或程序未使用某些服务,它们会自动停止。”。我必须将用户帐户设为管理员才能正常工作。 如何真正做到第一? 仅仅做了这两个步骤并没有解决我的问题。我查看了事件日志,看看我还能找到什么,并注意到我驱动服务的域帐户没有写入服务日志文件的权限。我将域帐户设置为本地管理员,它让我启动并运行! @Shadoninja。我在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 服务运行)

使用 Google Cloud 服务帐户是 VSTS 构建

创建命名管道 (WCF) 所需的最低操作系统权限

如何使用域 Windows 用户帐户作为应用程序池标识

是否可以在没有 Windows 服务的情况下使用服务帐户(域)在不同的用户(模拟)下运行代码?

Windows域帐户与域控制器的优点介绍