AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 15147
Accepted
Instantsoup
Instantsoup
Asked: 2009-05-30 12:57:18 +0800 CST2009-05-30 12:57:18 +0800 CST 2009-05-30 12:57:18 +0800 CST

如何授予域用户启动和停止 Tomcat 服务的权限?

  • 772

我意识到这与这个问题几乎相同,但最大的区别在于 MSKB 文章中描述的方法不适用于已安装的 Tomcat 服务。它们适用于简单的 Windows 服务,但不适用于我们需要控制的 Tomcat 服务。

还有什么想法吗?

编辑(详细信息):如果我有 100 个 Tomcat 容器服务,我是否必须为每个服务明确授予组此权限?有没有办法让 DOMAIN 组设置为有权在 15 台机器上停止/启动 100 个不同的 Tomcat 服务?

编辑(更多信息):我们正在使用 Ant sshexec (jsch) 并在调用 net stop service_name 时获得 Access Denied 错误级别 5。

windows-service permissions
  • 3 3 个回答
  • 15734 Views

3 个回答

  • Voted
  1. Best Answer
    Evan Anderson
    2009-06-03T06:56:55+08:002009-06-03T06:56:55+08:00

    我不确定您以前尝试过什么,但这是我刚刚做的并取得了成功:

    1) 下载 Tomcat 5.5.27 Windows 服务安装程序并安装。

    2) 使用“sc sdshow tomcat5”转储 TomCat5 服务安全描述符,这向我展示了:

    D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
    

    这是一个非常常见的服务安全描述符。我已经在某些 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)
    

    此 SDDL 字符串为 Bob 的 SID (S-1-5-21-1409082233-484763869-854245398-1009) 提供停止、启动和暂停服务(分别为 RP、WP 和 DT)的权利。

    5) 我返回到“Bob”命令提示符并验证我现在可以使用 NET STOP 和 NET START 停止和启动服务。

    我建议创建一个组来委派此权限,将用户放入该组,获取组的 SID(使用 WHOAMI 或任何其他工具)并以这种方式修改安全描述符。

    我认为使用组策略来修改安全描述符会很好。我已经看到一些服务不喜欢基于组策略的修改对服务施加的默认权限的情况(如果您想了解我在说什么,请查看有关 Windows Search 服务的帖子:http:/ /peeved.org/blog/2007/12/07),但这在我的经验中并不常见。

    如果您想了解有关服务安全描述符的更多背景信息,请查看http://msmvps.com/blogs/alunj/archive/2006/02/13/83472.aspx和http://support.microsoft.com/kb /914392。

    • 7
  2. user7542
    2009-06-03T07:33:28+08:002009-06-03T07:33:28+08:00

    您可以设置一个 Windows 调度程序作业来运行该命令。可以设置调度程序作业以在其他用户的凭据下运行命令。然后,您可以设置作业的安全性,以便只有特定的一组用户可以运行它。

    您需要管理员权限才能创建计划任务,但您可以授予其他人运行它的权限。即使它是计划任务,您也可以将其设置为仅按需运行。

    例如,假设您创建了一个名为:StartTomcat 的作业(打开控制面板>计划任务,然后右键单击并选择新建>计划任务)

    转到“任务”选项卡。

    将“Run”和“Start in”值设置为启动 Tomcat 的命令行。还将“运行方式”行设置为允许启动和停止 Tomcat 的用户,然后单击“设置密码...”按钮以提供用户密码。最后,取消选中 Enabled 框,因为您只想按需运行作业。

    然后转到“安全”选项卡。
    添加您希望允许运行任务的人员,并仅授予他们对任务的“读取和执行”权限。

    最后,创建一个批处理文件来执行任务。批处理文件将包含以下行:

       schtasks /run /tn 启动Tomcat

    将批处理文件放在需要运行它的用户可以访问的位置。甚至可以将批处理文件放在单独的机器上,但您需要在 schtasks 行中添加一些附加参数。您可以在 Windows 帮助中查找这些参数。

    • 1
  3. Ryan Bolger
    2009-05-30T13:23:41+08:002009-05-30T13:23:41+08:00

    您需要找出是什么让这些 Tomcat 服务如此特别,以至于在 Windows 中控制它们的常规方法不起作用。他们怎么不工作?它只是一个拒绝访问的问题吗?如果是这样,ProcMon将非常有助于确定需要授予访问权限的具体位置。

    • 0

相关问题

  • 如何让 setfacl 在 Linux 上递归地设置 ACL 权限?

  • 将权限委托给 TFS 项目中的子文件夹

  • 在 Vista 中提升 Windows 安装程序

  • 如何使用脚本远程重启 Windows 服务?

  • 如何授予对 Exchange 2007 中每个人的日历的访问权限?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve