六、如何连接和访问共享文件或文件夹
当我们创建完共享文件或文件夹后,第一个需要思考的问题就是如何访问这些共享文件或文件夹。一般来说,我们最常使用的方法有三种:
(一) 使用“开始”----“运行”或“资源管理器”
如果我们并不是经常访问这些共享文件夹或者一台计算机有多个人使用,我们不想让其它人知道有这样一个或几个共享文件夹存在,通常使用这种方法。如下图6.1
(图6.1)
其实前言已提及,连接共享使用\\服务器名或IP\共享文件夹 的通用命名约定(Universal naming convention,简称UNC)来访问,可能一说到简称UNC很多人都听说过。
还有一种方法就是使用资源管理。当你双击“我的电脑”打开一个窗口的时候,实际上就是启动了资源管理(Windows Explorer)然后在地址栏中输入共享文件夹的UNC。如下图6.2
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
(图6.2)
(二) 利用映射网络驱动器
如果用户每天甚至更频繁的要访问这些共享文件夹,每次都要在“开始”-”运行“中输入共享文件夹的UNC,显然很麻烦。将远程计算机的共享文件夹映射成一个本地驱动器盘符。这样,就感觉是本地计算机的一个逻辑磁盘。如下图6.2-A
(图6.2-A)
设置远程共享文件夹的地址,如下图6.2-B
(图6.2-B)
我们可以在“我的电脑中”看到映射的图标和地址,如下图6.2-C
(图6.3-C)
(三) 利用NET USE命令
这是很多系统管理员喜欢使用的方法。甚至在AD中,就是利用NET USE命令结合组策略,可以给相关的计算机或账户将远程计算机的共享文件夹映射驱动器。(关于这一点,在稍后介绍)
命令语法:net use Driveletter(Z:) \\servername\sharename
如下图6.3
(图6.3)
七、 共享文件夹的匿名访问与授权访问
((一)匿名访问
我们共享文件或文件夹通常处于两种目的:第一种,类似集中发放的文件或文件夹共享。比如你有一个文档或电子书,任何人都可以远程访问你共享的文件夹下载这个文档或电子书。这种情况下是谁来访问并不重要。因为任何人都可以,如下图7.1
(图7.1)
我们并不关心是用户A还是用户G取走了共享文件夹X中的内容。因为里面的内容就是给大家共享使用的。这种情况下使用匿名访问就很方便了。WINDOWS SERVER系统中有一个匿名用户GUEST,默认情况下这个账号是禁用的,不要为了要想匿名访问,就需要启用这个账号了。如下图7.2
(图7.2)
在WINDOWS SERVER 2008 R2中,被禁用的账号由一个向下的黑色箭头,我们只要在账户属性中勾选“禁用该账号”取消掉就可以了。实际上单单启动匿名账号还不能完成匿名访问,我们需要设置文件夹的共享权限和NTFS权限。我们拿“WL”共享文件夹举例,如下图7.3
(图7.3)
实际上我们之前说了WIN7&2008R2的时代有两种设置共享的方法,一种是普通共享,一种是高级共享,今天还要强调的是,文件夹共享同时受到共享权限和NTFS权限双重联合控制。通过图7.3的上文我们可以了解到,通过网络访问共享文件夹的时候首先要通过“共享权限”的验证,然后再通过“NTFS权限”的验证。(NTFS权限控制本地访问)只有通过两者的授权才能正常的访问被共享的文件夹,很多人就是在这里设置不当,造成共享文件夹无法访问。
匿名访问的设置其实很简单,就是“共享权限”和“NTFS权限”中设置”everyone”组读权限即可,如下图7.4-A和7.4-B
(图7.4-A 共享文件夹“WL”的共享权限设置,everyone组可读)
(图7.4-B “WL”共享文件夹的NTFS权限设置,everyone组可读)
按照这样设置后,只要访问“WL”共享文件夹就不需要身份认证了,不会弹出身份认证的窗口。如下图7.5
(图7.5)
由于设置了只读模式,所以只能读取和运行文件夹中的文件和目录,无法删除该目录中的文件和新增文件。我们测试一下,如下图7.6-A和7.6-B
(图7.6-A试图添加一个文件到该WL中,失败)
(图7.6-B试图删除一个文件,失败,注意看提示呦!)
如果是匿名共享,我认为上面的方法从安全的角度来说是可取的。我们不需要知道谁来取得共享文件夹中的文件,我们允许任何人读取共享文件中的文件,并且可以复制到本机。但是不允许修改共享文件夹中的内容,包括删除。
(二)可怕的Everyone组
我思考了一下,觉得还是要先说一下这个everyone组,并且给了“可怕的”这个定语,因为这个everyone组确实很可怕。可能有人会问我为什么?很抱歉,我一直想写一篇关于WINDOWS用户组管理方面的博文,但是一直还没有,我将来会在那个文章中详述,因为这个everyone组实际上是组嵌套中那个最大的容器。通俗一点说,这个EVERYONE组包含了默认的管理员账号、来宾账号和计算机默认所有的组。所以在设置权限的时候一个不小心,就会出问题。很多人在设置共享权限的时候就是喜欢用EVERYONE组,但是又没有搞清楚这个组的恐怖所在,贸然使用,最后导致始终无法设置成自己想要的权限。现在我们来看一个小小的实验,下面有一个用户z00w00,在共享权限和NTFS权限中都设置了可读/写权限,按理说修改个文件名不在话下吧,我就是在看似八竿子打不着的everyone组中设置了写入拒绝,结果z00w00就不能改用户名了。看下图7.7-A和7.7-B
(图7.7-A 注意看下图7.7-B read me.txt)
(图7.7-B 文件名Read me.txt 改为”read me111.txt”)
我们来看一下权限的设置,我是用z00w00这个账号通过网络访问这个WL文件夹的。如下图7.8-A和7.8-B
(图7.8-A WL的共享权限)
注意:我只给了z00w00这个账号读写权限,everyone组只有读权限
(图7.8-B WL文件夹的针对Z00W00账号的NTFS权限)
注意:z00w00我都给了修改权限,所以上面就可以修改文件名,Everyone组权限是什么不重要。
接下来就是见证奇迹的时刻,我就修改Everyone组权限写入拒绝,那么结果就是z00w00通过网络访问共享文件夹WL的时候,无法修改文件名了。如下图7.9
(图7.9)
下面我们把read me111.txt改为read me222.txt结果就是拒绝访问,如下图7.10
(图7.10)
非常有意思的windows的NTFS权限和LINUX是不同的,既然我们领略到everyone组的拒绝写入权限已经造成了该文件不可更名,实际上它还禁止了在这个文件(实际上包括所有的三个文件)中写入,和保存在WL文件夹中。我们现在实验一下印证理论,如下图7.11-A和7.11-B
(图7.11-A 因为没有拒绝读权限,所以可以打开该文档)
(图7.11-B 写入”9. Bye”)
现在我们保存一下看看,如下图7.12
(图7.12 保存原文本文件)
结果就是拒绝访问,如下图7.13
(图7.13)
好吧,我们现在另存一下,如下图7.14
(图7.14 另存为Read me222.txt)
结果仍然是拒绝好不啦,如下图7.15
(图7.15)
但是,我们是可以删除这个文件的,现在我们尝试删除一下,如下图7.16
(图7.16)
结果证明已经删除了,如下图7.17,神奇吧!
(图7.17)