设置Windows服务的访问权限

作者:beyond

默认情况下,只有管理员组成员、LocalSystem和Power Users组成员帐户才有权启动、停止服务。为了让普通用户也可以控制该服务,我们可以手动设置其访问权限。可能有些初学者会感到奇怪,怎么服务也可以设置权限?其实在Windows系统里,不仅可以对文件夹设置权限,还可以对注册表、打印机和服务等系统资源进行权限设置。然而对服务进行权限设置,没有对文件夹进行权限设置那么直观,需要借助以下两种方法:

安全配置和分析

(1)以管理员身份登录系统,在运行对话框里输入mmc并回车打开控制台窗口,然后添加“安全配置和分析”管理单元。

(2)鼠标右键单击新添加的“安全配置和分析”管理单元,单击弹出菜单上的“打开数据库”菜单项,在打开的对话框里指定新建的安全数据库名称,例如可以是SrvACL,然后单击“打开”按钮。

(3)在随之打开的对话框上选择系统内置的安全模板文件,例如可以选择“setup security”模板。

(4)鼠标右键单击“安全配置和分析”管理单元,单击弹出菜单上的“立即分析计算机”菜单项,在弹出对话框上单击“确定”按钮即可开始分析当前计算机的安全配置。

(5)分析结束以后,单击左侧控制台树里的“系统服务”节点,在右侧的详细窗格里双击所需设置的服务名(本例是App Service)。

(6)在打开的属性对话框上勾选“在数据库中定义这个策略”复选框,然后单击“编辑安全设置”按钮。

(7)在打开的安全设置对话框上添加Users用户,然后确保勾选“启动停止和暂停”权限右侧的“允许”复选框,如图下所示。

(8)依次单击所有打开对话框上的“确定”按钮,然后鼠标右键单击“安全配置和分析”管理单元,单击弹出菜单上的“立即配置计算机”菜单项,即可用刚才定义的权限设置配置系统。

Subinacl命令工具

还可以借助Subinacl命令工具方便地查看和设置服务的权限配置,到以下微软官方网站下载其最新版本:

http://www.microsoft.com/downloads/details.aspx?FamilyId=E8BA3E56-D8FE-4A91-93CF-ED6985E3927B&displaylang=en

(1)以管理员身份登录系统,打开命令提示符窗口。

(2)在命令提示符下输入以下命令:

subinacl /service AppSrv /grant=users=top

要注意,subinacl只能接收服务名(ServiceName),而不是显示名称(DisplayName)。命令参数“grant=users=top”表示给Users组帐户赋予“启动、停止和暂停”AppSrv服务的权限,“top”中的t代表start(启动)权限、o代表stop(停止)权限、p代表pause(中止/继续)权限。

(3)接下来可以运行以下命令,查看AppSrv服务的权限设置:

subinacl /verbose=2 /service AppSrv /display=dacl

命令结果类似如下所示:

====================

+Service AppSrv

====================

/perm. ace count  =5

/pace =builtin\administrators       ACCESS_ALLOWED_ACE_TYPE-0x0

SERVICE_ALL_ACCESS

……

/pace =builtin\users      ACCESS_ALLOWED_ACE_TYPE-0x0

SERVICE_START-0x10            SERVICE_STOP-0x20             SERVICE_PAUSE_CONTINUE-0x40

注意 服务的登录身份指定了服务能够以多大的权限访问系统资源,而服务的访问权限则指定用户能够以多大权限控制该服务。

http://caizhixin75.blog.163.com/blog/static/1835107120071171136765/

时间: 2024-10-08 09:29:55

设置Windows服务的访问权限的相关文章

windows service 之访问权限(有NetworkService和LocalSystem的区分)

最近写了一个关于从局域网的算机上下载文件的winodws service,最初认为应该没什么大的问题.通过本地的调试也没发现问题.但是当我把程序发布后发现服务报错“访问路径被拒绝”,我的第一感觉,肯定是网络文件夹访问权限问题.那好吧,就用个最傻的方法把文件夹的权限设置成everyone.但是,我把服务跑起来后发现根本就不理你,还是报同样的错误.难道是下载文件的模块出错了?后来我把下载模块放到一个控制台程序和一个web页面中,都顺利通过.真是搞不懂,后来到网上搜一下看到思归老大的回复,是 wind

Windows服务(system权限)程序显示界面与用户交互,Session0通知Session1里弹出对话框(真的很牛) good

源码资源下载:http://download.csdn.net/detail/stony1980/4512984 1.VC2008中编写“Windows服务”(Windows Service)程序 vc2008下新建一个 ATL 项目-> 选择创建一个“服务”类型的ATL 项目TestService,将生成如下代码, class CTestServiceModule : public CAtlServiceModuleT< CTestServiceModule, IDS_SERVICENAME

设置windows服务依赖项

场景还原:python2.7开发的项目,制作成了windows服务,随系统启动.系统重启后发现服务未能自动启动,检查事件查看器日志发现服务先于Mysql数据库服务启动,由于服务中必须对MySQL进行访问,所以服务启动失败.尽管设置了启动失败后尝试重启,但是不能让项目服务自启动. 问题详述:1.xp系统不能设置服务“自动(延迟)”模式 2.服务先于MySQL服务启动.在代码中设置了睡眠,但是windows的服务机制是系统会在服务自启一段时间(未验证,但是一定有)要求服务返回服务状态(是否已经运行)

Linux设置SFTP服务用户目录权限

我们有时会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加.修改.删除操作,并且只能使用sftp登录服务器,不能用ssh操作.这些可以通过配置sftp服务实现. 提供sftp服务的有vsftpd和internal-sftp,这里用的是系统自带的internal-sftp,操作步骤如下: 1.创建新用户ui,禁止ssh登录,不创建家目录 useradd -s /sbin/nologin -M www 2.设置用户密码 passwd www 3.创建用户的根目录,用户就只能在此

C# 设置文件夹的访问权限

/// <summary> /// 设置文件夹的ACL /// </summary> /// <param name="folderPath">文件夹路径</param> /// <param name="userName">用户</param> /// <param name="rights">权限</param> /// <param nam

解决Windows服务无法访问网络映射盘的问题

下载工具psexec 下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec 百度地址:https://pan.baidu.com/s/1Yw5fQpsxe2Tdh94R-A_2ug       提取码:y5ik 用psexec创建网络驱动器 1.运行CMD,执行 psexec -i -s cmd.exe 2.在新开的CMD窗口中运行网络映射 net use z: \\10.10.x.xxx\test /persis

Windows服务编程

先说明,本文不是编写服务,而是编程控制已有的服务. 服务是一种程序类型,它在后台运行,服务程序通常可以在本地和通过网络为用户提供一些功能.服务程序可能是EXE程序,具有其单独的进程,也有可能是DLL文件依附于某个进程,更有可能是SYS文件而处于系统的内核之中. 在Windows下,可以在"我的电脑"上单击鼠标右键,然后再弹出的菜单上选择"管理",打开"计算机管理工具",单击左面树形列表的"服务和应用程序"会打开子列表,选择&q

玩转Windows服务系列&mdash;&mdash;Windows服务启动超时时间

最近有客户反映,机房出现断电情况,服务器的系统重新启动后,数据库服务自启动失败.第一次遇到这种情况,为了查看是不是断电情况导致数据库文件损坏,从客户的服务器拿到数据库的日志,进行分析. 数据库工作机制 要分析数据库启动失败的原因,首先说明一下数据库服务的工作机制. 数据库分为六大服务: 数据库的六大服务之间存在依赖关系,及启动流程: 服务自动启动失败原因 从客户那里,拿到了两份日志,一份是开机自启动的日志信息,此次数据库启动失败.另外一份是开机后,手动启动数据库服务的日志信息,此次数据库启动成功

Nginx网站服务搭建——基础服务、设置访问权限

Nginx Nginx是一款高性能,轻量级web服务软件,其稳定性高.系统资源消耗低, 对HTTP并发连接的处理能力高. 常用命令 实验步骤 1.远程获取Windows上的源码包,并挂载到Linux上2.解压源码包.下载安装环境包3.创建程序用户并配置Nginx服务相关组件4.编译安装5.优化Nginx服务启动脚本,并建立命令软连接6.使用浏览器访问192.168.235.158,即可访问到Nginx服务的首页7.制作service管理脚本 [[email protected] nginx-1.