NTFS权限是作为一个Windows管理员必备的知识,许多经验丰富的管理员都能够很熟悉地对文件、文件夹、注册表项等进行安全性的权限设置,包括完全控制、修改、只读等。而谈论NTFS权限这个话题也算是老生常谈了,但是对于一些“新手”,还是会有一些不是非常清楚的地方,本文就针对NTFS权限的重点要素进行探讨,以给大家对于NTFS权限的内容有一个初步的了解。
 【正文】

一、    用户和组

权限设置必然涉及的三要素为访问者、权限、被访问的对象,那么我们首先来看一下“访问者”这一要素。“访问者”其实就是我们常说的“用户和组”,用户是授予权限的最小单位,而组则可以看作是用户的集合,在Windows系统中,用户与组都是使用SID作为其唯一标识符,应用到NTFS权限上也是如此,实际上也是对这些SID进行权限的授予。

那么在这里我们先来了解一下在工作组环境中的Windows系统内置的一些具备特殊功能作用的用户和组。

名称

性质

特点描述

Administrator

用户

所谓“超级管理员”,默认禁用。在系统默认的安全策略下,其不受UAC约束且将以管理员身份运行任何程序。鉴于这一特性将严重降低系统安全性,Microsoft不建议将其启用。

Administrators

所有管理员帐户都是Administrators组的成员。在ACL中,针对管理员的权限设置,通常使用Administrators组进行分配。注意在UAC启用的情况下,非经提权,仅有Administrators组的拒绝权限会应用到普通管理员。

Users

所有用户帐户都是Users组的成员。在ACL中,针对用户的权限设置,通常使用Users组进行分配。

Guest

用户

来宾帐户,默认禁用。相较于普通用户帐户,来宾帐户受到更多限制。在于“控制面板\用户帐户和家庭安全\用户帐户\管理帐户”中启用来宾帐户后,此帐户也将被启用。

HomeGroupUser$

用户

家庭组用户帐户。用于实现家庭组简化的、安全的共享功能。在创建家庭组后,此帐户将被创建及启用。

TrustedInstaller

特殊用户

可信任的安装程序,实质上其指代的是一种特殊的服务,与Windows Modules Installer服务关系很大。可通过直接输入名称NTSERVICE\TrustedInstaller将其添加到ACL中。

HomeUsers

在ACL中,针对家庭组的权限设置,通常使用HomeUsers组进行分配。

Authenticated Users

特殊组

是所有在本系统或域内有合法账户的用户的集合。

Everyone

特殊组

所有用户的集合,无论其是否拥有有合法账户。

Creator Owner

特殊组

创建对象或目前是对象所有者的用户的集合。实质上此组的作用是:当它存在于ACL中时,将同时将所有者用户帐户以设定的权限添加进ACL。

Owner Rights

特殊组

此组的作用主要在于限制对象所有者隐性的查看、更改ACL的权限。

SYSTEM

特殊组

本地系统。相当多的服务使用此身份运行,如Windows Search。

二、    NTFS权限

NTFS权限是基于NTFS分区实现的,通过对用户或组授予NTFS权限可以有效地控制用户对文件和目录的访问。对于NTFS磁盘分区上的每一个文件和文件夹,NTFS都存储了一个访问控制列表(ACL,Access Control Lists)。ACL中包含有那些被授权访问该文件或者文件夹的所有用户账号、组和计算机,还包含他们被授予的访问类型。为了让一个用户访问某个文件或文件夹,针对相应的用户账号、组,或者该用户所属的计算机,ACL中必须包含一个对应的入口,这样的入口叫做访问控制入口(ACE,Access Control Entries)。为了让用户能够访问文件或者文件夹,访问控制入口必须具有用户所请求的访问类型。如果ACL没有相应的ACE存在,Windows系统就拒绝该用户访问相应资源。

NTFS权限分为标准NTFS权限和特殊NTFS权限两大类。标准NTFS权限可以说是特殊NTFS权限的特定组合。特殊NTFS权限包含了在各种情况下对资源的访问权限,其组合限制了用户访问资源的所有行为。但通常情况下,用户的访问行为都是几个特定的特殊NTFS权限的组合或集合。Windows为了简化管理,将一些常用的特殊NTFS权限组合起来形成了标准NTFS权限,当需要分配权限时可以通过分配一个标准NTFS权限以达到一次分配多个特殊NTFS权限的目的。
如下列表就是标准NTFS权限和特殊NTFS的对应关系表。

 

标准NTFS权限

特殊NTFS权限

完全控制

修改

读取和执行

读取

写入

列出文件夹目录

遍历文件夹/运行文件

   

列出文件夹/读取数据

   

读取属性

   

读取扩展属性

   

创建文件/写入数据

   

 

创建文件夹/附加数据

   

 

写入属性

   

 

写入扩展属性

   

 

删除子文件夹及文件

         

删除

       

读取权限

 

更改权限

         

取得所有权

         

针对以上权限设置,下表列出了其所起到的作用。

权限类型

权限名称

权限作用描述

标准NTFS权限

完全控制

用户可以修改、增加、移动和删除文件,以及它们相关的属性和目录。另外,用户还能改变所有文件和子目录的权限设置。

修改

用户能够查看和修改文件和文件属性,包括删除和添加目录文件或文件属性。

读取和执行

用户可以运行可执行文件,包括脚本。

读取

用户能够查看文件和文件属性。

写入

用户能够改写文件。

特殊NTFS权限

遍历文件夹/运行文件

用户可以通过文件夹到达其它文件或文件夹,即使这些文件夹没有遍历文件或文件夹的权限。只有在“组策略”管理单元中没有将“跳过遍历检查”用户权限授予用户组或用户时,遍历文件夹才会生效。(默认情况下,Everyone用户组拥有“跳过遍历检查”用户权限。)

列出文件夹/读取数据

用户可以查看一个文件的内容和数据文件列表。

读取属性

用户可以查看一个文件或文件夹的属性,如只读和隐藏。(NTFS定义这些属性。)

读取扩展属性

用户可以查看一个文件或文件夹的扩展属性。(扩展属性由程序定义,可能各不相同。)

创建文件/写入数据

建立文件权限允许用户在文件夹内建立文件。(这个权限只应用于文件夹。)写入数据权限允许用户改写文件,覆盖现有内容。(这个权限只应用于文件。)

创建文件夹/附加数据

建立文件夹权限允许用户在文件夹内建立文件夹。(这个权限只应用于文件夹。)附加数据权限允许用户修改文件末尾部分,但他们不能改变、删除或覆盖现有数据。(这个权限只应用于文件。)

写入属性

用户可以修改文件或文件夹的属性,如只读或隐藏。(NTFS定义这些属性。)

写入扩展属性

用户可以修改一个文件或文件夹的扩展属性。

删除子文件夹及文件

用户可以删除子文件夹及文件,即使该子文件夹及文件上没有删除权限。

删除

用户可以删除文件或文件夹。(如果用户在该文件或文件夹上没有删除权限,但是在其父级的文件夹上有删除子文件及文件夹权限,那么就仍然可以删除它。)

读取权限

用户拥有文件或文件夹的读取权限,如完全控制、读取和写入。

更改权限

用户拥有文件或文件夹的变更权限,如完全控制、读取和写入。

取得所有权

用户可以取得文件或文件夹的所有权。文件的所有者总能改变这个文件的权限,不管文件或文件夹受到何种权限的保护。

在使用基于NTFS的ACL中,还涉及到应用范围,那就是在NTFS权限设置的时候的作用域了,如下表列出了相应的作用域。

权限作用域

只有该文件夹

此文件夹、子文件夹及文件

此文件夹和子文件夹

此文件夹和文件

仅子文件夹和文件

只有子文件夹

只有文件

但是在实际的权限配置中,由于继承、权限选项以及特殊组的存在,作用域的效果并不是绝对的。如下则为在高级权限设置中,会出现的一些权限选项:

选项名称

选项描述

包括可从该对象的父项继承的权限

禁用继承/启用继承

以当前对象为子对象,在子对象及其父对象之间建立继承关系,并用父对象权限设置替换子对象权限设置。去除该选项的勾选可以阻断继承关系。

使用可从此对象继承的权限替换所有子对象权限

以当前对象为父对象,在父对象及其子对象之间建立继承关系,并用父对象权限设置替换子对象权限设置。

仅将这些权限应用到此容器中的对象和/或容器

作用域仅及于对象下的第一层文件/文件夹而不涉及更深层次的文件/文件夹。

替换子容器和对象的所有者

将对象中的所有文件/文件夹的所有者变更为当前对象的所有者。

三、    NTFS权限的使用法则

为了更好地应用和制度NTFS权限在设置的时候将产生的效果,我们需要了解一些NTFS权限的法则。

1、 权限的积累,即权限最大法则
  用户对资源的有效权限是分配给该个人用户账户和用户所属的组的所有权限的总和。如果用户对文件具有“读取”权限,该用户所属的组又对该文件具有“写入”的权限,那么该用户就对该文件同时具有“读取”和“写入”的权限。当有拒绝权限时权限最大法则无效。

2、 文件权限高于文件夹权限
  意思就是说NTFS文件权限对于NTFS文件夹权限具有优先权,当用户或组对某个文件夹以及该文件夹下的文件有不同的访问权限时,用户对文件的最终权限是用户被赋予访问该文件的权限。假设你能够访问一个文件,那么即使该文件位于你不具有访问权限的文件夹中,你也可以进行访问(前提是该文件没有继承它所属的文件夹的权限)。

3、 拒绝权限高于其他权限
  拒绝权限可以覆盖所有其他的权限。甚至作为一个组的成员有权访问文件夹或文件,但是该组被拒绝访问,那么该用户本来具有的所有权限都会被锁定而导致无法访问该文件夹或文件。也就是说上面第一点的权限累积原则将失效。

4、 指定的权限高于继承的权限
  即一个对象上对某用户/组的明确权限设置优先于继承而来的对该用户/组的权限设置。例如本来该用户继承自父文件夹有对其下子文件夹或文件有“拒绝”的权限,但是管理员在该子文件夹或文件上授予该用户有“允许”的权限,则该用户对该子文件夹或文件拥有“允许”的权限。结合继承、指定和拒绝、允许的条件,有如下的规则:指定拒绝 > 指定允许 > 继承拒绝 > 继承允许。

以上为一些权限设置应用的规则,当然,我们不必自己手动计算权限结果,而可以使用“有效权限”选项卡来自动计算某一用户/组的有效权限。但需要注意的是它并不会考虑UAC对权限分配的影响。

NTFS权限详解的更多相关文章

  1. 【Linux学习】Linux下用户组、文件权限详解

    原文地址:http://www.cnblogs.com/123-/p/4189072.html Linux下用户组.文件权限详解 用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在li ...

  2. Linux "ls -l"文件列表权限详解

    ls Linux "ls -l"文件列表权限详解 1.使用 ls -l 命令 执行结果如下(/var/log) : drwxr-x--- root adm -- : apache2 ...

  3. MySQL权限详解

    MySQL权限级别介绍 MySQL权限级别 全局性的管理权限,作用于整个MySQL实例级别 数据库级别的权限,作用于某个指定的数据库上或者所有的数据库上 数据库对象级别的权限,作用于指定的数据库对象上 ...

  4. Linux 用户及权限详解

    Linux 用户及权限详解 用户 , 组 ,权限 安全上下文(secure context): 权限: r,w,x 文件: r : 可读,可以使用类似cat 等命令查看文件内容. w : 可写,可以编 ...

  5. Linux之权限详解

    如何知道你有什么权限 我能干什么?这是我最关心的问题! 切换到普通用户 [root@luffy-01 ~]# su - pizza [pizza@luffy-01 ~]$ ls /root ls: c ...

  6. Linux学习之文件特殊权限详解(SetUID、SetGID、Sticky BIT)(十一)

    Linux学习之文件特殊权限详解(SetUID.SetGID.Sticky BIT) 目录 SetUID SetGID Sticky BIT SetUID SetUID简介 只有可以执行的二进制程序和 ...

  7. Linux学习之ACL权限详解(十)

    Linux系统ACL权限详解 目录 ACL权限简介与开启 查看与设定ACL权限 最大有效权限与删除ACL权限 默认ACL权限和递归ACL权限 ACL权限简介与开启权限 ACL权限简介 用户权限管理始终 ...

  8. Linux权限详解 命令之 chmod:修改权限

    权限简介 Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功. Linux下文件的权限类型一般包括读,写,执行.对应字母为 r.w.x. Li ...

  9. linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解

    文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...

随机推荐

  1. RabbitMQ如何实现延迟队列?(转)

    什么是延迟队列 延迟队列存储的对象肯定是对应的延迟消息,所谓"延迟消息"是指当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者才拿到这个消息进行消费. 场景一 ...

  2. JDK版本基础知识解释

    感谢大佬:https://www.cnblogs.com/bjguanmu/articles/8710209.html jdk:java development kit,是程序员编写java程序需要的 ...

  3. 版本控制SVN

    为什么需要版本控制软件 代码的冻结 避免在重大的考核之前改动代码 每个稳定版本都在服务器保存进度,随时可以回退 需求频繁的变化不要改动稳定的代码,不要改别人写好的代码 为什么需求会变化?有时候产品自己 ...

  4. linux shell 中数组的定义和for循环遍历的方法

    linux 中定义一个数据的语法为: variable=(arg1 arg2 arg3 ....) 中间用空格分开.数组的下标从0开始. 1 获取下标为n的元素: variable[n] 而且不存在数 ...

  5. 有了Autolayout的UILabel

    在没有Autolayout之前,UILabel的文字内容总是居中显示,导致顶部和底部会有一大片空缺区域 有Autolayout之后,UILabel的bounds默认会自动包住所有的文字内容,顶部和底部 ...

  6. push自定义动画

    // //  ViewController.m //  ViewControllerAnimation // //  Created by mac on 15/5/26. //  Copyright ...

  7. 【HDU6662】Acesrc and Travel(树型Dp)

    题目链接 大意 给出一颗树,每个点上有一个权值\(A[i]\),有两个绝顶聪明的人甲和乙. 甲乙两人一起在树上轮流走,不能走之前经过的点.(甲乙时刻在一起) 甲先手,并可以确定起点.甲想要走过的点权之 ...

  8. rabbitmq集群实现

    官方文档 一.环境准备 1.1 IP地址规划 1.2 配置主机域名解析 ##每个节点修改主机名 # hostnamectl set-hostname mq1.example.local # hostn ...

  9. async同步异步

    1.同步:var async = require("async"); async.series([step1, step2, step3],function(err, values ...

  10. 《STL源码剖析》学习半生记:第一章小结与反思

    不学STL,无以立.--陈轶阳 从1.1节到1.8节大部分都是从各方面介绍STL, 包括历史之类的(大致上是这样,因为实在看不下去我就直接略到了1.9节(其实还有一点1.8.3的内容)). 第一章里比 ...