NTFS权限小探
——“读取”和“读取和执行”
在Windows管理中,一项重要的工作就是设定NTFS权限。而权限的管理是一项非常复杂的工作,NTFS权限本身也有相当的复杂性。本文想就教学中一个有关NTFS权限的小问题,在这里进行探讨,有不妥之处,还请各位指教。
我们的课程体系中Windows的内容占了一半多,这里面就有关于Windows管理的。其中的重点和难点一个是关于Windows域,另一个就是本文要涉及到的权限。把域作为重点是因为它是构建Windows网络的灵魂,而对于域概念的理解就自然而然地成为难点。一方面,学生平时接触的都是桌面操作系统;另一方面,域的概念很抽象。而我们使用域的目的是要简化管理,实现网络资源的统一调配,使得网络结构更加契合企业的管理模型,利用AD的强大功能来强化企业安全策略。企业安全策略体现在网络管理上的一个重要方面就是关于资源权限的问题!
每每讲到这里都有许多的困惑,学生也会提很多的问题,教师之间也会就权限问题互相探讨,过程中就会听到一些对于权限的误解,这也是写作本文的一个初衷。希望能通过这篇小小的文章为大家在一定程度上解除困惑,消除误解。果真能如此,也就足矣。
NTFS权限是一个复杂的体系,它控制着账户对资源的访问,是Windows安全体系中的重要组成部分。NTFS权限由对象(驱动器、文件夹、文件)、ACL(访问控制列表)及访问控制项组成,其中“访问控制项”就是我们说的权限,它又分普通权限和特殊权限。而权限又有继承、非继承和强制继承等几种情况。你说复杂不复杂!
一般来说,象“写入”、“完全控制”、“修改”等权限是不容易混淆的,光看字面意思就能明白他们的用处。在教学中最容易引起歧义的就是“读取和执行”和“读取”这两个权限。我们经常听到有的教师对学生说:“读取和执行”就是能够读文件以及拥有执行文件的权力,而“读取”只是能读文件而已。这种说法我们不能够完全认为不对,但还是有欠妥之处,还是禁不起推敲。而要想搞清楚他们之间的区别,还要从特殊权限上入手。所谓“特殊权限”也并不神秘,它只不过是权限的细分而已。请看下图:
该图是Windows帮助中截取的关于权限的部分。从这幅图上,细心的读者不难看出二者的区别。“读取和执行”比“读取”多了一个“执行文件”的特殊权限。这或许还不能让你理解他们之间的区别,下面我们就用实验来说明问题。
首先,我们以administrator登录,然后创建一个普通的域用户“zhangsan”,如图:
第二步,我们创建一个文件夹“a”,并给domain\users赋权——“读取”,如图:
第三步,我们用“zhangsan”这个用户登录,验证他是否有权查看文件夹“a”的安全属性,如图:
结果,zhangsan是有权读取文件夹a的安全属性的
第四步,更改zhangsan的权限为写入,然后验证他是否还能够读取文件夹a的安全属性,如图:
结果很明显,zhangsan失去了查看对象安全属性的能力。这里要特别提出的是,当我们勾选“读取和执行”权限的时候系统会同时勾选“读取”权限,而单独勾选“读取”权限的时候是不会同时勾选“读取和执行”的。这说明,前者是依赖于后者的,前者的权限包含了后者的权限,反之则不成立。有兴趣的朋友可以动手实验一下。
所以,我在教学中会对学生强调,“读取”权限是一种使得账户具有查看对象安全属性的能力的权限,即读取权限的权限。当你具有了这种权限,自然你就具有了读取对象数据的权限。而要想拥有执行应用程序的权限,则需要拥有“读取和执行”的权限,但这往往是不够的,因为许多应用程序在运行的时候需要你同时拥有对宿主文件夹或驱动器的“写入”权限。当然,本文所对比的这两个权限,无论从出发角度上还是验证方法上都是存在着预设条件,比如:在做实验以前,我取消了文件夹a从驱动器的权限继承,也没有将特殊权限的设置纳入讨论范围等。要想充分掌握NTFS权限的设置,还需要大家根据具体需求反复实践,才能够充分领悟和运用自如。