前言

前几天收到客户的一个特别需求,有一台服务器的服务Service1需要授予以为普通的域用户User1重启服务的权限,并且不希望该用户拥有重启该服务器以为的其他管理权限,如远程登录服务器、服务器的管理员权限等。在windows中可以对特定服务进行授权管理,方法大概有以下三种:

1) 使用组策略进行授权

2) 使用安全模板进行授权;

3) 使用工具Subinacl.exe进行授权。

以上3个方法中第三个不能在最新的windows 2008 R2中使用。下面详细介绍以上三个方法的具体实现方式。

一、 使用组策略进行授权

此方法适用于在域策略中使用,本地策略中不适用,也可在Windows 2008及R2的域中使用。在此不详细介绍组策略的新建及应用。

1) 单击“开始”,指向“管理工具”,然后单击“组策略管理”;

2) 右击“组策略对象”,然后单击“新建”。键入新的组策略对象的名称(例如,Service1服务授权),然后按 ENTER 键。

3) 单击该新建的组策略对象(如果尚未选中),然后右击“编辑”。

4) 展开“计算机配置”,展开“Windows 设置”,展开“安全设置”,然后单击“系统服务”。

5) 在右窗格中,双击要对其应用权限的服务(Service1)。

6) 单击“定义这个策略设置”复选框,将其选中。

7) 单击“编辑安全设置”。

8) 对所需的用户帐户和组授予适当的权限,并且可以在“高级”中细分相关权限,然后单击“确定”。

9) 在“选择服务启动模式”中选择“自动”,单击“确定”。

10) 将新建的组策略链接到相关的OU中。

二、 使用安全模板进行授权

此方法适合对单台的服务器或工作组下的服务器授权,并且在Windows 2008或R2中使用。若要使用安全模板来更改系统服务的权限,创建安全模板,操作步骤如下:

1) 单击“开始”、 单击“运行”,在“打开”框中键入mmc,然后单击“确定”。

2) 在“文件”菜单上单击“添加/删除管理单元”。

3) 单击“添加”、 单击“安全配置和分析”、 单击“添加”,单击“关闭”,然后单击“确定”。

4) 在控制台树中右键单击“安全配置和分析”,然后单击“打开数据库”。

5) 指定名称和为该的数据库的位置,然后单击“打开”。

6) 在“导入模板”对话框出现,单击要导入的安全模板,然后单击“打开”。

7) 在控制台树中右键单击“安全配置和分析”,然后单击“立即分析计算机”。

8) 在“执行分析”对话框出现,接受显示在“错误日志文件路径”框中的日志文件的默认路径或指定所需的位置,然后单击“确定”。

9) 分析完成后请按以下方法配置服务权限:

a) 在控制台树中单击“系统服务”。

b) 在右窗格中双击服务想要更改其权限。

c) 单击以选中“在数据库中定义这个策略”复选框,然后单击“编辑安全”。

d) 若要配置新的用户或组的权限,单击“添加”。在“选择用户、计算机,或组”对话框中键入的用户或组为其设置权限,所需的名称,然后单击“确定”。

e) 在“User or Group 的权限”列表中配置为用户或组所需的权限。

f) 单击“确定”两次。

10) 要将新的安全设置应用到本地计算机中,用右键单击“安全配置和分析”,然后单击“立即配置计算机”。

三、 使用工具Subinacl.exe进行授权

从下载并安装Subinacl,默认安装路径为:C:\Program Files\Windows Resource Kits\Tools,Subinacl下载地址为:

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23510

Subinacl的命令语法为:

SUBINACL /SERVICE \\MachineName\ServiceName

/GRANT=[DomainName\]UserName[=Access]

  • 运行此命令,用户必须具有管理员权限才能成功完成。

  • 如果省略 MachineName,则假定为本地计算机。

  • 如果省略 DomainName,在本地计算机帐户的搜索。

  • 可以对组进行授权。

  • Access 可以接受的值如下所示:

F : Full Control

R : Generic Read

W : Generic Write

X : Generic eXecute

L : Read controL

Q : Query Service Configuration

S : Query Service Status

E : Enumerate Dependent Services

C : Service Change Configuration

T : Start Service

O : Stop Service

P : Pause/Continue Service

I : Interrogate Service

U : Service User-Defined Control Commands

如本文中提到的客户需求(重启服务)就可以通过以下命令完成。

cd “C:\Program Files\Windows Resource Kits\Tools”

SUBINACL /SERVICE \\MachineName\Service1 /GRANT=contoso\User1=TO

比如修改本地计算机apache服务用户为user1权限为重启服务:

subinacl /service apache /grant=user1=TO  #### TO 是有重启权限


http://www.canway.net/Lists/CanwayOriginalArticels/DispForm.aspx?ID=348