Ins*_*oup 7 permissions windows-service
我意识到这与这个问题几乎相同,但最大的区别在于 MSKB 文章中描述的方法不适用于已安装的 Tomcat 服务。它们适用于简单的 Windows 服务,但不适用于我们需要控制的 Tomcat 服务。
任何进一步的想法?
编辑(详细信息):如果我有 100 个 Tomcat 容器服务,我是否必须为每个服务的组明确授予此权限?有没有办法让 DOMAIN 组设置为有权在 15 台机器上停止/启动 100 个不同的 Tomcat 服务?
编辑(更多信息):我们正在使用 Ant sshexec (jsch) 并在调用 net stop service_name 时获得拒绝访问错误级别 5。
我不确定你以前尝试过什么,但这是我刚刚做的并且取得了成功:
1) 下载Tomcat 5.5.27 Windows Service 安装程序并安装。
2) 使用“sc sdshow tomcat5”转储了 TomCat5 服务安全描述符,它向我展示了:
D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
Run Code Online (Sandbox Code Playgroud)
这是一个非常常见的服务安全描述符。我已经在某些 Microsoft 服务上逐字逐句地看到了它。SYSTEM 和内置管理员具有“完全控制权”,“高级用户”可以停止、启动和暂停服务,“经过身份验证的用户”可以查询服务的属性(我在这里略作掩饰)。
3)我在我的盒子上创建了一个名为“bob”的受限用户,以他的身份打开了一个“RUNAS”命令提示符,并从“WHOAMI /ALL”(一个在Windows Server 2003上但不在XP上的命令)获得了他的SID。 . 不知道我头上的 Vista 和 Windows 7)。我确认 Bob 无法停止/启动 Tomcat 服务(使用“NET STOP tomcat5”)。我收到了您在帖子中报告的相同错误。
4)从我的常规管理员命令提示符,运行以下命令:
sc sdset tomcat5 D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)(A;;RPWPDT;;;S-1-5-21-1409082233-484763869-854245398-1009)
Run Code Online (Sandbox Code Playgroud)
此 SDDL 字符串授予 Bob 的 SID (S-1-5-21-1409082233-484763869-854245398-1009) 停止、启动和暂停服务(分别为 RP、WP 和 DT)的权限。
5) 我翻回“Bob”命令提示符并验证我现在可以使用 NET STOP 和 NET START 停止和启动服务。
我建议创建一个组来委派此权限,将用户放入该组,获取组的 SID(使用 WHOAMI 或任何其他工具)并以这种方式修改安全描述符。
我认为使用组策略修改安全描述符会正常工作。我见过某些服务不喜欢基于组策略的修改对服务施加的默认权限的情况(如果您想了解我在说什么,请查看有关 Windows 搜索服务的帖子:http:/ /peeved.org/blog/2007/12/07),但这在我的经验中并不常见。
如果您想了解有关服务安全描述符的更多背景,请查看http://msmvps.com/blogs/alunj/archive/2006/02/13/83472.aspx和http://support.microsoft.com/kb /914392。