项目组成员,在进行程序交流时,把一目录共享,供他人修改。但发现一个问题,已经把该共享目录设定为对ERVERYONE的完全操作权限,但其它人只能访问该目录,也可以新建目录和文件,就是不能修改已经有的文件。
试了几个方法后,恍然大悟,是NTFS分区搞的鬼,NTFS分区对文件的访问权限进行了进一步的安全控制。也就是说针对NTFS分区格式的文件,当我们右键属性时,会看到一个安全的TAB页面,用于控制对该文件的访问权限,默认只有创建者有完全访问权限。
共享目录的共享属性控制哪些人可以通过网络对该共享目录进行操作,NTFS分区的安全属性控制文件或目录的本身的安全属性,所有针对NTFS分区的目录进行共享时,要根据需要分别进行共享权限及文件夹的安全权限双重设置。
设置共享文件夹的权限
共享权限应用于通过网络连接到共享文件夹的用户。共享权限不会影响本地登录或使用远程桌面登录的用户。
若要为本地登录用户或使用远程桌面登录的用户设置权限,请使用“安全”选项卡而不是“共享权限”选项卡。这样将在 NTFS 文件系统级别设置权限。如果同时为共享文件夹设置了共享权限和文件系统权限,当连接到共享文件夹时将使用限制较多的权限。
例如,若要授予域中用户“读取”访问权限,在“共享权限”选项卡上,将 Everyone 组的权限设置为“完全控制”。在“安全”选项卡上,通过将 Domain Users 组的权限设置为“读取”访问权限指定限制更多的访问权限。结果是作为 Domain Users 组成员的用户,无论是通过网络共享、远程桌面连接还是本地登录,对共享文件夹都只有只读权限。
可以使用操作系统工具 iCacls.exe 或 Cacls.exe 在命令行设置文件系统级别权限。该工具仅在 NTFS 卷上运行。
今天宿舍同学打算看我机器上的动漫,但却无法访问,于是晚上开始尝试解决问题。先在共享选项卡中只添加Everyone用户并只赋予读取权限,安全选项卡中删除原有的Everyone并手动添加完全权限的Administrator以及只有读取权限的Everyone用户,但是无法访问。再将上级的F盘安全选项卡中的Everyone赋予完全控制权限还是不行,于是上网搜索解决方法,但都无效。在再次查看F盘权限时,在安全选项卡的“高级”中,将权限一栏中的“用在此显示的可以应用到对象的子项目替代所有对象的子项目”选上并点确定之后,问题终于解决啦^^
回头看一下,发现其实Windows XP的默认设置是对的,我只需将共享选项卡中的Everyone只赋予读取权限即可,但是我将安全选项卡中的继承自上级目录的Everyone删除掉,这样新添加的用户虽然可以正常访问目录下的文件,但是局域网内其他用户就无法访问了。借用某位网友的一句话:“共享文件夹的权限取决于NTFS和共享权限的交集,也就是取二者的最小权限,所以你NTFS完全控制,但是共享权限只读,最终权限还是只读。”所以即使给F盘的Everyone赋予完全读取权限,但是在共享中的Everyone只赋予读取权限就安全了,又解决了一个问题,开心啊^^看来有关NTFS的知识还有很多我不了解,需要努力学习啊:)