不用 FTP 实现共享文件夹用户隔离
                                    -----Server2003共享文件夹权限设置
 
概述:
    对于Windows Server 2003 R2,用户可以使用文件服务器资源管理器(FSRM)方便和高效的实现共享文件管理。Windows Server 2003非R2文件服务器角色做为Windows Server 版本虽然无法使用FSRM,但是只要不试用期文件筛选功能,基本上也能满足正常需求。
   正常情况下,实现用户隔离最简单的方法莫过于部署具有用户隔离功能的FTP服务器,但是,并非所有用户都愿意或者说是习惯使用FTP服务器,因此将用户隔离功能在正常局域网文件共享系统中集成,可以在不改变用户习惯的同时,实现用户隔离功能,加强安全管理。下面即是我自己在部署文件服务器过程中结合搜集的资料和实践的所做的总结,希望能给相关应用的朋友提供参考思路!
  
实践环境:企业局域网;Windows Server2003 SP2(R2更简单功能更强大)
 
知识要点: 共享权限与NTFS权限
 
我们知道:网络共享资源访问权限是由共享权限和NTFS权限组合而成,即设置权限的时
侯遵循的规则是两者最严格的组合(也就是权限交集),其要点如下:
Ø         共享权限仅对通过网络访问的用户和组起作用,无法对任何本地用户和交互式登录的用户起作用,本地用户和交互式登录的访问权限通过NTFS权限控制。
Ø         共享权限决定了通过网络访问共享资源所能取得的最大权限。
Ø         默认情况共享权限中的Everyone 不包含Anonymous(匿名用户)。
Ø         NTFS 权限作用于以任何方式访问文件或文件夹的用户。
Ø         NTFS权限不仅可应用于文件夹,也可以应用于具体文件。
Ø         文件权限优先于文件夹权限
Ø         非继承权限中,显式的拒绝权限优先。
Ø         显式的允许权限优先于继承的拒绝权限
小结:经过上述资料可知:如果要建立一个共享目录,只要需要又一个子目录需要写入权限,那么必须在“共享权限”和“NTFS权限”设置中都存在写入权限,否则他们的交集权限没有写入权限,明白了这一点就可以很轻松的实现多种形式的权限设置了。(实践中以及网上看到不少网友提出“无法写入文件”的疑问,关键点就在这里)
 
下面就是经过多次实践所汇总的表格:

方 案
共享权限
NTFS权限
实践结果
A
完全控制
不做设置
正常访问、写入、删除
B
完全控制
删除users特权
正常访问、但是无法写入和删除
C
完全控制
删除users所有权限,但不添加指定账户
无法访问
D
完全控制
删除users所有权限,添加指定账户只读权限
只有制定账户能够正常访问、但是无法写入和删除
E
完全控制
删除users所有权限,添加指定账户完全控制权限
只有制定账户能够正常访问、且能够正常读写、删除
通过上述表格可以发现,如果不需要限制特定账户的权限可根据需要使用方案A和方案B,如果需要限制特定账户使用权限可以使用方案D和方案E。
那么如果把上述表中的权限反过来错做呢,这个由于时间关系没测试过,不过按照权限交集规则, 应该是没问题的,有待有兴趣的朋友试下。
注:在使用过程中,我曾经遇到过多层目录的权限设置问题,这里需注意一点,如果存在多层目录,如果要实现指定特定账户访问其中一个子目录,一定要注意其上层目录的权限:例如共享文件夹目录为 \\192.168.0.3\share 其下子目录 \\192.168.0.3\share\信息部\smr有重要文件,只想要用户SMR访问,其他用户不能打开访问,这是就需要采取方案E:在共享 \\192.168.0.3\share文件夹处设置访问权限(如果要修改需给予完全控制权限),而对中间的信息部文件夹则只需给予只读权限即可,而在smr文件夹需给予完全控制权限。
注意:由于多层目录的权限存在“显式的允许优先于集成的拒绝权限”的规则,如果上层目录拒绝某个权限而下层目录允许该权限,那么实际权限为允许。同时如果要使用“将这些权限只应用到这个容器中的对象和/或容器上” 时需注意,一旦使用这个选项,该目录中的子目录无法继承上层目录中的指定权限:例如“信息部”制定只有smr能故完全控制,但是在此目录使用了“将这些权限只应用到这个容器中的对象和/或容器上”选项,那么无论是否在“信息部”文件夹勾选“用在此现实的可以应用到子对象的项目替代所有子对象的权限项目”,以及是否在子目录勾选“允许父项的继承权限传播到该对象和所有子对象”。子目录均无法获取SMR账户的完全控制权限。