我们为windows服务编写了服务描述符,其中用户没有启动/停止服务的特权,但管理员可以启动/停止服务



我们正在尝试创建一个完全由管理员控制的服务,并且用户无法使用任务管理器进行启动,停止,重新启动或更改服务的启动类型或结束服务等操作。在这个阶段,我们的SDDL看起来像:D:P(A;; cclcswrplocrwd;;;SY)(A;; cclcswrplocrwd;;;SU)(A;; cclcswrplocrwd;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

这个SDDL提供了以下权限:NT AUTHORITYSERVICE: Access: Allow, Permissions: This Object Only - createcchild, Self, ListObject, ExtendedRight, GenericExecute, WriteDaclAUTHORITYSYSTEM: Access: Allow, Permissions: This Object Only - createcchild, Self, ExtendedRight, GenericRead, WriteDaclBUILTINAdministrators: Access: Allow, Permissions: This Object Only - createcchild, Self, ExtendedRight, GenericRead, WriteDacl

目前没有人可以停止服务,但我们希望只有管理员有特权停止服务,我们需要帮助设置SDDL为相同的!

我不确定它是否仍然相关,但您需要ACE字符串"WP"。这允许相关标识(在SID字符串中提到)启动/停止服务。因此,如果您希望让管理员具有停止和启动的能力,则需要使用以下命令("BA"SID字符串代表内置管理员,您也可以添加管理员帐户的SID):

D:(A;;CCLCSWRPLOCRRCWDWP;;;BA)

在你所写的上下文中:

D:P(A;;CCLCSWRPLOCRRCWD;;;SY)(A;;CCLCSWLOCRRCWD;;;SU)(A;;CCLCSWRPLOCRRCWDWP;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)