安全又省心授予标准用户管理特定系统服务的权限
2021-09-09俞木发
俞木发
方法1 使用SC.exe设置服务权限
假设现在用于本机系统维护的管理员账户是Administrator,平时登录使用的标准账户是cfan,现在需要授予cfan对Spooler服务的管理权限。我们利用系统内置的SC.exe命令即可实现。
先使用管理员账户登录系统,启动命令提示符后输入“sc.exe sdshow Spooler”命令并回车(输入每条命令后均需回车确认,下同),便可以看到Spooler服务的权限设置(图2)。
服务权限的解释:
括号外的“ D”表示“ DiscretionaryAccess Control List”(简写为DACL),它是一种基于目标资源所有者确定访问权限的访问控制模型,包含了用户和组的列表,以及它们对指定服务Spooler拥有的相应权限,如“允许”或“拒绝”。
括号外的“S”则表示“System Access ControlList”(简写为SACL),它是系统中的一个列表,用来记录指定用户(组)、指定类型的访问,并保存访问记录。
括号内的第一个字母“A”表示允许、“D”表示拒绝权限,其后的一组符号是可分配的权限,最后两个字母表示授予权限的对象(可以是用户、组或SID),系统有一个预先定义的组列表与之对应。
这样,如果我们需要授予cfan账户对Spooler服务的管理权限,可以通过命令将该账户的SID添加到允许的列表中。同上,启动命令提示符后输入并执行“wmicuseraccountgetname,sid”,可以看到當前电脑中所有账户的SID。现在复制cfan账户的SID值以备用(图3)。
继续在上述的窗口中输入并执行“scsdsetSpooler"D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPCR;;;cfan账户的SID值)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"”,请自行更改其中“cfan账户的SID值”为实际使用账户的SID值,这样命令便会将指定账户的SID添加到允许的控制权限中(图4)。
完成上述的操作后,再切换到cfan账户并登录系统。现在如果cfan账户遇到打印机网络故障,需要重启Spooler服务,在如图1所示的窗口中,就可以停止或者重启该服务了(图5)。
方法2 使用“Proces Ex plorer”更改
如果你觉得命令行的操作比较晦涩难懂,那么我们还可以借助微软提供的免费工具“Proc ess E xpl orer”(下载地址:ht tps://docs.microsof t.com/zh-cn/sysinternals/downloads/process-explorer)来进行更改。
首先以管理员身份启动“ProcessExplorer”,接着在左侧的进程列表中依次展开“wininit.exe→Services.exe”,双击其中的“spoolsv.exe”(图6)。
然后在打开的窗口中切换到“服务”选项,点击下方的“权限”按钮,对该服务的权限进行更改(图7)。
接着在打开的权限设置窗口中选中cfan账户(如果在组和用户名列表中没有显示cfan账户,则点击“添加”将其加入到列表中),勾选下方的“完全控制”、“读取”和“写入”,最后依次点击“确定”退出(图8)。
这样,cfan账户就拥有了对Spooler服务的完全控制权限,在遇到问题时自然就可以轻松地进行服务的重启操作了。其他服务权限的设置类似,大家可以根据实际需要,灵活地授予标准用户管理指定服务的权限。