“NTFS权限”,鉴于NTFS已经与我们亲密接触了如此长的时间,这个话题可以算是老生常谈了。然而在NT6.x大幅度改进了系统安全性后,作为安全重要环节的NTFS权限就不再是远离用户应用的技术。在实践中,部分用户由于特殊的应用需求可能需要对个别受保护的系统文件进行更改,不少用户可能会遇到NTFS权限设置错误导致的异常,而NTFS权限与UAC的结合也为我们的应用带来了更多可能性。要在不损害系统安全性的前提下实现我们的应用目标,就需要对NTFS权限的内容与配置方法有个初步的了解。是而为此文。 严格的说,NTFS权限的正式称谓是ACL(访问控制列表),因而在下文的陈述中也会逐步的引入ACL的概念。同时由于ACL广泛应用于系统权限控制中,因而本文所陈述的内容虽以NTFS权限为主,但可以类推于其他具备ACL特性的情景中,如注册表。 一、谈论ACL时不得不说的话题——用户与组 权限设置,必然是为授予某一群体对对象的访问权而设立,而用户与组正是这被授权的群体。用户是授予权限的最小单位,而组可以视作是用户的集合。用户与组都使用SID作为其唯一标识符。比起活动目录域中域本地组、全局组、通用组及其嵌套、转换所带来的多彩缤纷的应用相比,单机环境下的用户与组要简单得多。这里主要介绍一些具备特殊功能定位的用户与组。 l Administrator:用户。所谓“超级管理员”,默认禁用。在系统默认的安全策略下,其不受UAC约束且将以管理员身份运行任何程序。鉴于这一特性将严重降低系统安全性,不建议将其启用。 l Guest:用户。来宾帐户,默认禁用。相较于普通用户帐户,来宾帐户受到更多限制。在于“控制面板\用户帐户和家庭安全\用户帐户\管理帐户”中启用来宾帐户后,此帐户也将被启用。 l HomeGroupUser$:用户。家庭组用户帐户。用于实现家庭组简化的、安全的共享功能。在创建家庭组后,此帐户将被创建及启用。 l TrustedInstaller:特殊用户。可信任的安装程序,实质上其指代的是一种特殊的服务,与Windows Modules Installer服务关系很大。可通过直接输入名称NTSERVICE\TrustedInstaller将其添加到ACL中。 l Administrators:组。所有管理员帐户都是Administrators组的成员。在ACL中,针对管理员的权限设置,通常使用Administrators组进行分配。注意在UAC启用的情况下,非经提权,仅有Administrators组的拒绝权限会应用到普通管理员。 l Users:组。所有用户帐户都是Users组的成员。在ACL中,针对用户的权限设置,通常使用Users组进行分配。 l HomeUsers:组。在ACL中,针对家庭组的权限设置,通常使用HomeUsers组进行分配。 l Authenticated Users:特殊组。是所有在本系统或域内有合法账户的用户的集合。 l Everyone:特殊组。顾名思义,所有用户的集合,无论其是否拥有有合法账户。 l Creator Owner:特殊组。创建对象或目前是对象所有者的用户的集合。实质上此组的作用是:当它存在于ACL中时,将同时将所有者用户帐户以设定的权限添加进ACL。 l Owner Rights:特殊组。此组的作用主要在于限制对象所有者隐性的查看、更改ACL的权限。 l SYSTEM:特殊组。本地系统。相当多的服务使用此身份运行,如Windows Search。 二、可以做什么?——可以分配的权限 事实上当ACL被应用于不同的场景时,其有不同的权限可供分配。这里仅介绍基于NTFS的ACL权限分配可选项。 从类型上看,权限包括标准权限与特定权限。标准权限是由指定的特定权限与指定的作用域组成的。 基于NTFS的ACL中,标准权限有: l完全控制(完全控制+遍历文件夹/执行文件+列出文件夹/读取数据+读取属性+读取扩展属性+创建文件/写入数据+创建文件夹/附加数据+写入属性+写入扩展属性+删除子文件夹及文件+删除+读取权限+更改权限+取得所有权) l修改(遍历文件夹/执行文件+列出文件夹/读取数据+读取属性+读取扩展属性+创建文件/写入数据+创建文件夹/附加数据+写入属性+写入扩展属性+删除+读取权限,作用域:此文件夹、子文件夹和文件) l读取和执行(遍历文件夹/执行文件+列出文件夹/读取数据+读取属性+读取扩展属性+读取权限,作用域:此文件夹、子文件夹和文件) l列出文件夹内容(遍历文件夹/执行文件+列出文件夹/读取数据+读取属性+读取扩展属性+读取权限,作用域:此文件夹和子文件夹) l读取(列出文件夹/读取数据+读取属性+读取扩展属性+读取权限,作用域:此文件夹、子文件夹和文件) l写入(创建文件/写入数据+创建文件夹/附加数据+写入属性+写入扩展属性,作用域:此文件夹、子文件夹和文件) l特殊权限(其他特定权限与作用域的结合) 基于NTFS的ACL中,特定权限有: l完全控制 l遍历文件夹/执行文件 l列出文件夹/读取数据 l读取属性l读取扩展属性 l创建文件/写入数据 l创建文件夹/附加数据 l写入属性 l写入扩展属性 l删除子文件夹及文件 l删除 l读取权限 l更改权限 l取得所有权 基于NTFS的ACL中,作用域有: l只有该文件夹 l此文件夹、子文件夹及文件 l此文件夹和子文件夹 l此文件夹和文件 l仅子文件夹和文件 l只有子文件夹 l只有文件 但是在实际对权限的配置中,由于继承、权限选项与特殊组的存在,作用域并不是绝对的。 此外,“所有者”也可视为一种特殊的权限设置。所有者始终具备查看、更改对象的隐性权限(除非以Owner Rights进行限制)。任何管理员帐户或其他具备“取得所有权”权限的帐户都可以强行更改对象所有权。取得所有权是接管对象的重要步骤,具体的接管对象的方法则会在下面的文章中提到。 三、如何简化ACL配置?——权限选项 在高级权限设置(属性\安全\高级)中,我们可以遇到一些权限选项。权限选项对于简化对ACL的配置作用很大。这些权限选项包括: l包括可从该对象的父项继承的权限:以当前对象为子对象,在子对象及其父对象之间建立继承关系,并用父对象权限设置替换子对象权限设置。去除该选项的勾选可以阻断继承关系。 l使用可从此对象继承的权限替换所有子对象权限:以当前对象为父对象,在父对象及其子对象之间建立继承关系,并用父对象权限设置替换子对象权限设置。 l仅将这些权限应用到此容器中的对象和/或容器:作用域仅及于对象下的第一层文件/文件夹而不涉及更深层次的文件/文件夹。 l替换子容器和对象的所有者:将对象中的所有文件/文件夹的所有者变更为当前对象的所有者。 四、有效权限是如何计算的?——权限规则 权限规则很简单,仅仅两条: 1、“指定”优先于“继承” 即一个对象上对某用户/组的明确权限设置优先于继承而来的对该用户/组的权限设置。例如: 现有文件夹folderA,folderA中有子文件夹folderB,folderB与folderA存在权限继承关系。对于用户User,folderA拒绝其拥有写入权限,而folderB在继承而来的权限设置之外,还单独赋予User写入权限。此时,User对folderB拥有写入权限。 2、“拒绝”优先于“允许” 即当除规则1的情形外,对某用户/组同时赋予允许和拒绝权限时,拒绝权限优先。例如: 现有文件夹folderA及用户User,User同时隶属于GroupA和GroupB两个组。对于GroupA,folderA赋予其完全控制权限,对于GroupB,folderA拒绝其拥有写入权限。此时User不具备对folderA的写入权限。 当然,我们不必自己手动计算权限结果,而可以使用“有效权限”选项卡来自动计算某一用户/组的有效权限。但需要注意的是它并不会考虑UAC对权限分配的影响。 |
相关文章
- 一文看透ChatGPT | ChatGPT调研分析与应用场域结合构想
- ChatGPT调研分析与应用场域结合构想
- ChatGPT调研分析与应用场域结合构想
- .NET实现Office Excel自定义公式 广泛应用于报表与数据分析
- 使用谷歌分析与混合移动应用程序
- 如何在Android应用程序中分析Apk文件?获取权限
- Zabbix与乐维监控对比分析(二)——Agent管理、自动发现、权限管理
- Zabbix与乐维监控对比分析(二)——Agent管理、自动发现、权限管理
- Linux内核源代码情景分析-访问权限与文件安全性
- PHP call_user_func和call_user_func_array函数的简单理解与应用分析