设为首页 收藏本站
查看: 1232|回复: 0

[经验分享] [译]Windows 服务用户帐户

[复制链接]

尚未签到

发表于 2018-6-13 13:26:32 | 显示全部楼层 |阅读模式
  在 Windows 操作系统中,每个服务都运行在一个用户帐户安全上下文中。其用户名和密码在服务安装时由 CreateService 函数指定,并可以通过 ChangeServiceConfig 函数进行更改,通过 QueryServiceConfig 函数查询某个服务的用户名。服务控制管理器(SCM)自动为服务加载用户配置文件。启动服务时,SCM 会登录到该服务关联的账户之上,一旦登录成功,系统会生成一个访问令牌,并将其附加到新的服务进程上,用于在随后与安全对象(带有安全描述符的对象)的交互中标识该服务进程。例如,如果服务尝试打开某个管道的句柄,系统将在为该服务获取权限之前对比其访问令牌和管道的安全描述符。

SCM 不会保留服务所使用的用户帐户的密码。如果密码过期,登录会失败,服务启动失败。为服务指派帐户的系统管理员可以创建永不过期的密码,或者通过服务配置程序来周期性的更改过期的密码。
如果服务需要在与另一个服务共享其信息之前对其进行识别,那么第二个服务可以使用第一个服务的帐户,或者运行在另一个被第一个服务识别的帐户别名中。需要在网络环境中处理分布式事务的服务可以运行在域帐户中。
可以向服务指定下列特殊帐户,而不必指定某个用户帐户:LocalService、NetworkService、LocalSystem。
http://blog.wbpluto.com/wp-content/uploads/2011/05/thumb.png
LocalService
该账户是给SCM使用的预定义本地帐户,其不会被安全子系统识别,因此无法通过调用 LookupAccountName 函数来获得其用户名。它具有本地计算机上的最小特权,在网络访问时代表匿名凭据。
该账户可以在调用 CreateServiceChangeServiceConfig 函数时指定。需要注意的是,该账户没有密码,因此在调用时提供的任何密码都会被忽略。如果安全子系统本地化其账户名,SCM将不支持本地化的名称。因此,可以通过 LookupAccountSid 函数来取得该账户的本地名称,但不管系统区域是什么,在调用 CreateServiceChangeServiceConfig 时必须使用 NT AUTHORITY\LocalService 这个名称,否则会发生不可预料的结果。
该用户的 SID 由 SECURITY_LOCAL_SERVICE_RID 值来创建。
该账户在 HKEY_USERS 注册表项下有自己的子键,因此,它有与自己关联的 HKEY_CURRENT_USER 注册表项。
该账户具有下列特权:

  • SE_ASSIGNPRIMARYTOKEN_NAME (已禁用)
  • SE_AUDIT_NAME (已禁用)
  • SE_CHANGE_NOTIFY_NAME (已启用)
  • SE_CREATE_GLOBAL_NAME (已启用)
  • SE_IMPERSONATE_NAME (已启用)
  • SE_INCREASE_QUOTA_NAME (已禁用)
  • SE_SHUTDOWN_NAME (已禁用)
  • SE_UNDOCK_NAME (已禁用)
  • 用户和已鉴定用户拥有的其他特权

NetworkService
该账户在本地计算机上拥有最小特权,在网络上代表该计算机的身份。默认情况下,远程令牌包含 Everyone 和 Authenticated Users 用户组的 SID。该用户的 SID 由 SECURITY_NETWORK_SERVICE_RID 值来创建。其他属性与 LocalService 相同。
LocalSystem
它具有本地计算机上的扩展特权,在网络访问时代表该计算机的身份。其令牌包含 NT AUTHORITY\SYSTEM 和 BUILTIN\Administrators 的 SID,这些账户能够访问系统中大多数对象,其名称在所有区域均为 .\LocalSystem,使用 LocalSystem 或 ComputerName\LocalSystem 均可。
本账户中运行的服务会继承SCM的安全上下文。该用户的 SID 由 SECURITY_LOCAL_SYSTEM_RID 值来创建。本账户不与已登录的任何账户关联。此账户有以下特点:

  • HKEY_CURRENT_USER 关联到默认用户,而不是当前登录的用户。要访问其它用户的配置文件,需要模仿该用户,然后访问 HKEY_CURRENT_USER。
  • 使用该账户的服务可以打开 HKEY_LOCAL_MACHINE\SECURITY。
  • 此服务以本计算机的身份访问远程服务器。
  • 如果服务打开了命令窗口并运行批处理文件,用户可以使用 Ctrl+C 终止该批处理,以此获得使用 LocalSystem 权限访问命令行窗口的能力。
另外,本账户具有以下特权:

  • SE_ASSIGNPRIMARYTOKEN_NAME (已禁用)
  • SE_AUDIT_NAME (已启用)
  • SE_BACKUP_NAME (已禁用)
  • SE_CHANGE_NOTIFY_NAME (已启用)
  • SE_CREATE_GLOBAL_NAME (已启用)
  • SE_CREATE_PAGEFILE_NAME (已启用)
  • SE_CREATE_PERMANENT_NAME (已启用)
  • SE_CREATE_TOKEN_NAME (已禁用)
  • SE_DEBUG_NAME (已启用)
  • SE_IMPERSONATE_NAME (已启用)
  • SE_INC_BASE_PRIORITY_NAME (已启用)
  • SE_INCREASE_QUOTA_NAME (已禁用)
  • SE_LOAD_DRIVER_NAME (已禁用)
  • SE_LOCK_MEMORY_NAME (已启用)
  • SE_MANAGE_VOLUME_NAME (已禁用)
  • SE_PROF_SINGLE_PROCESS_NAME (已启用)
  • SE_RESTORE_NAME (已禁用)
  • SE_SECURITY_NAME (已禁用)
  • SE_SHUTDOWN_NAME (已禁用)
  • SE_SYSTEM_ENVIRONMENT_NAME (已禁用)
  • SE_SYSTEMTIME_NAME (已禁用)
  • SE_TAKE_OWNERSHIP_NAME (已禁用)
  • SE_TCB_NAME (已启用)
  • SE_UNDOCK_NAME (已禁用)
(本文由wbpluto翻译自MSDN网站。)

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-523391-1-1.html 上篇帖子: SCCM2012客户端安装失败及相关问题 下篇帖子: Windows Server Version 1709下载地址
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表