前言
在文章云存储网关结合Active Directory服务搭建Windows文件共享服务器中,笔者已经对如何利用云存储网关结合AD服务搭建文件共享服务器做了一个初步的介绍,包括云存储网关的一些基本操作,AD服务相关的配置,以及Windows客户端对权限的验证等。文章也提到了前文中的方法对某个用户的权限配置是在共享级别的粒度控制,也就是说单个用户对共享里面所有的文件和文件夹都具有同样的权限。如果想要让同一个用户对不同的文件夹拥有不同的权限,就需要用到云存储网关Windows权限控制相关的功能。笔者将在本篇文章中对云存储网关的这一功能做一下详细的介绍,并展示说明一下相关的配置实践及注意事项。
Windows权限控制功能是云存储网关在1.1.0版本推出的新特性,旨在给用户提供更加灵活的用户权限配置,满足不同用户的需求,具体来说它能够允许用户进行精细到每个文件或者文件夹粒度的权限控制,能够有效的保证数据安全性。对云存储网关的SMB共享而言,现在能够提供多种权限配置的方法供用户根据自身情况做选择,这里我们也做一个简单的总结,具体如下:
- 文件共享目录所有的人可见,这种情况创建完共享目录之后不需要进行任何权限配置。
- 文件共享目录对部分人可以,能够接受为这部分人创建新的SMB用户并进行权限配置,单个用户对共享目录的权限只有三种情况:读写权限、只读权限、无权限。具体可以参见利用云存储网关在Windows上挂载OSS这篇文章的权限管理那一部分。
- 文件共享目录对部分人可见,并且想利用AD域里面的账号进行权限配置,单个用户对共享目录的权限也是只需要读写、只读和无权限其中的一种。这条其实和上一条很类似,不同的是和AD域服务进行了结合。具体的话可以参见笔者的上一篇文章云存储网关结合Active Directory服务搭建Windows文件共享服务器。
- 如果共享级别的权限设置无法满足客户的需求,客户需要的是能够对同一用户在不同文件夹或文件上配置不同的权限。这个就需要本文中提到的Windows权限控制相关功能了,接下来我们就去体验一下该功能。
准备工作
Windows权限控制功能是需要结合AD域服务一起使用的,所以前期的准备工作就是要将文件网关加入到AD域,具体步骤见上一篇文章,这里跳过具体的操作步骤,下图是已经配置好DNS和AD域相关信息之后的截图。
接下来就是创建SMB文件共享了,这里需要注意的是“Windows权限支持”和“基于访问权限的枚举”这两个选项。“Windows权限支持”就是对应于这里说的Windows权限控制的功能,所以是要勾选上的。“基于访问权限的枚举”是说可以对访问者隐藏没有访问权限的文件夹和文件,从而做到进一步的隔离。
下图是已经创建好的用来操作的共享,这里没有启用基于访问权限的枚举这一选项。
用户权限配置
共享创建成功之后,接下来就可以使用啦。前面笔者没有通过阿里云控制台配置任何的权限,因为接下来我们可以通过右键对单个文件夹和文件进行权限设置了。首先登录一台在域里面的机器,笔者的客户端是Windows 2012 R2,刚开始这个文件夹肯定是可以访问的啦,毕竟没有设置任何权限。当前我们是以非管理员账号user2登录的,尝试创建了一个文件夹,完全没有任何问题。
右键这个文件夹安全->高级就可以看到当前这个目录的具体的权限配置信息。user2是当前文件夹的所有者,所以他对这个文件夹有完全的控制权限。“Domain Users"是user2所在的用户组,对当前文件夹拥有读和执行的权限,Everyone具有相同的权限配置。“CREATOR OWNER”和“CREATOR GROUP“是会被子文件夹和子文件继承的权限,指新建出来的子文件或者文件夹的默认所有者以及对应组的权限。
所以当前这个新建的文件夹对域里面的其它用户而言还是有读权限的。接下来会演示如何对这个文件夹进行设置,让这个文件夹只能被user2访问。很自然的做法是只要将Everyone和“Domain Users”这两个组的权限删除掉就好了。不过报错了!
这是因为这俩权限实际上是从父目录继承下来的,所以我们需要首先禁止掉当前文件夹的继承功能,并将当前继承的权限控制条目转为非继承的。
接下来就可以删除这两个权限了,这次选中再删除就不会报错啦。现在user2这个文件夹只有user2有权限可以访问了,“CREATOR OWNER”和“CREATOR GROUP“是会被子文件夹和子文件继承的权限,可以留着。试一下,用户user2在当前文件夹下创建子文件夹和文件完全没有问题。
接下来我们切换成域里的另一个用户user1,尝试登录看看有没有什么不同。禁止访问!
用同样的步骤,我们可以再创建一个user1的目录,并配置成这个文件夹只有user1可以访问。这样我们共享里面的两个文件夹就可以分别给不同的用户使用了,权限上做到了隔离,安全性有了保障。
通过前面的例子我们做到了在共享里面创建了两个文件夹,并且两个不同的用户对这两个文件夹具有不同的控制权限。虽然前面的例子比较简单,但是它展示了如何对文件夹和文件配置权限的完整过程。用户可以根据自己的选择将某个文件夹授予给更多的用户或者用户组,只需要右键安全->编辑对某个文件夹添加新的用户即可。
如果需要新用户也具有完整的控制权限,需要将下列选项都勾选上。
Windows权限控制的权限控制粒度非常的细致,前面的例子虽然很简单,但是已经能够做到对不同文件夹配置不同的读写权限,对大部分人来说已经足够使用了。
基于访问权限的控制
在前面创建SMB共享的时候,我们提到过和Windows权限控制功能相关的选项有两个。一个是启用Windows权限控制,这个比较好理解并且我们前面介绍的内容都是和这个相关的。另一个就是基于访问权限的控制。在前面我们发现了即使user1对user2的文件夹完全没有权限,但是这个文件夹还是能够被看到,只是在尝试点击这个文件夹的时候才会报错。如果我们想隐藏完全没有权限的文件夹,只看到自己有权限进行操作的文件和文件夹应该怎么办呢?这个时候“基于访问权限的控制”这个功能就能派上用场了,我们对前面的共享打开这个功能,然后再以user1登陆,看看发生了什么。
user1没有权限访问的user2文件夹消失啦,所以相信大家已经明白了这个选项该如何使用了吧。因为Windows会缓存一部分信息,所以在共享页面打开这个选项后,有时候需要等一会儿才能看到视图的变化,笔者这里也是等了一小会儿才看到user2这个文件夹的消失。所以在切换这个选项的时候,大家如果还是能看到不想看到的文件夹或者文件,请不要着急,稍等一会儿。
注意事项
最后这里也提下使用云存储网关Windows权限控制功能的一些关键点,具体可见云存储网关的帮助文档。
启用Windows权限控制时,文件或文件夹的权限信息保存在其对应OSS对象的元数据中。
对于每个文件或者文件夹,建议不要设置超过10条访问控制条目。
SMB文件共享的根目录的默认权限为所有人可以完全访问。建议您不要修改根目录的权限,而是对根目录下的顶级文件夹进行设置。根目录的权限只保存在网关本地。无法保存在OSS对象中。
用户设置AD信息时输入的管理员账号仍然拥有管理员权限,可以访问所有共享里面的文件夹和文件。所以在权限配置有误的时候,可以使用管理员账号重新设置。
总结
Windows权限控制功能是云存储网关新推出的功能,能够让用户做到在共享内的文件夹和文件上进行精细的权限控制,从而满足不同的用户需求。本文通过具体的例子展示了如何在网关上启用该功能和如何在Windows客户端上进行权限设置的详细步骤。