阿里云文件存储服务提供SMB/NFS/CIFS等多种文件存储协议,单文件系统可以存储海量数据,方便企业级客户在多个用户之间进行文件共享和协同合作。其中SMB协议是微软生态默认的文件共享协议,经过几十年的长期积累,具备广大的用户群,能够支持Windows、MacOS、Linux等多种客户端。阿里云NAS SMB文件存储通过支持AD域服务,可以对一个企业不同部门的不同员工创建不同的用户身份,结合ACL权限控制功能,达到企业有序可控地共享整个文件系统。
在此基础上,用户还可以在AD域服务器上配置主目录(Home Directory)服务,让每个用户登陆时能够很方便地访问自己的个人目录,这个目录将存储在NAS SMB文件系统上,可以海量扩展。
因为整个流程比较复杂,需要一篇文章将所有步骤梳理清楚。本文将假设一个简单的企业组织结构,将其部门和用户创建到AD域上,然后创建NAS SMB文件系统连接AD域,给AD域配置主目录服务,配置对应的权限控制信息,最后将不同客户端与文件系统连接,让用户能够轻松使用主目录服务。
场景假设
假设用户企业拥有两个个部门,GroupA, GroupB。
每个部门有两个个员工,UserA1, UserA2, UserB1, UserB2。
另外还有一个管理部门AdminGroupC,下面有AdminC1, AdminC2两位管理员员工。
文件系统根目录下有每个部门有自己的部门目录。每个部门目录下有部门每个员工自己的主目录。
GroupA, GroupB两个普通部门相互不可访问对方部门的目录。
两个普通部门每个部门的不同员工默认访问自己的主目录,也可以访问其他员工的目录但是不能修改。
管理部门的管理员员员工可以访问和修改所有部门的所有目录。
机器方面,假设用户有一个AD域服务器,负责管理用户信息,域信息与NAS SMB文件系统连通。
假设有多个客户端,包括Windows,MacOS,Linux机器,并且加入了AD域,完成挂载文件系统时的身份验证操作。
创建AD域服务器
首先该企业需要有AD域服务器。可以在阿里云上创建Windows ECS虚拟机,建立VPC虚拟网络,然后参考安装并启用Active Directory域服务与DNS服务。
也可以使用VPN或者NAT将用户线下的AD域服务器连接到阿里云VPC中。参考通过VPN网关实现本地数据中心访问阿里云NAS或者通过NAT网关实现本地数据中心访问阿里云NAS。
将SMB文件系统挂载点接入AD域
AD域服务器需要连接NAS SMB文件系统,参考将SMB文件系统挂载点接入AD域完成操作。
在AD域服务器挂载SMB文件系统,验证文件系统已经接入AD域
参考Windows系统挂载SMB文件系统,手动挂载文件系统成功之后,在根目录创建一个demo目录,可以看到目录创建人是Administrator。说明文件系统已经接入AD域,获取到了当前的挂载身份。
添加Domain Admins到文件系统根目录
参考 Windows客户端以AD域用户身份挂载并使用SMB文件系统,管理SMB文件系统ACL 段落,在Powershell命令行输入以下命令,添加Domain Admins全部允许权限到文件系统根目录。
$value = Get-Acl -Path "Z:"
$value.Access
# Set properties
$value = Get-Acl "Z:"
$identity = "Domain Admins"
$fileSystemRights = "FullControl"
$type = "Allow"
$inheritanceFlags = 3
$propagationFlags = 0
# Create new rule
$fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $inheritanceFlags, $propagationFlags, $type
$fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList
# Apply new rule
$value.SetAccessRule($fileSystemAccessRule)
$value.Access
Set-Acl $value -Path "Z:"
配置AD域部门和用户信息
创建部门
按照场景假设,创建GroupA, GroupB, AdminGroupC三个部门,其中AdminGroupC属于Domain Admins群组。
创建部门目录
用Administrator登陆AD域服务器,挂载文件系统。参考 Windows客户端以AD域用户身份挂载并使用SMB文件系统,管理SMB文件系统AC2L 段落,创建c:\myshare快捷方式,进入快捷方式目录。
创建GroupA, GroupB, AdminGroupC三个部门目录,给每个部门目录添加对应部门的全部只读权限。
每个部门目录添加共享目录Shared,添加对应部门的全部允许权限。
创建用户
创建UserA1, UserA2,属于GroupA部门,且配置了自己的主目录。
同样的方式配置UserB1, UserB2,AdminC1, AdminC2。将AdminC1, AdminC2加入到Domain Admins群组。
创建用户目录
用Administrator登陆AD域服务器,挂载文件系统。参考 Windows客户端以AD域用户身份挂载并使用SMB文件系统,管理SMB文件系统ACL 段落,创建c:\myshare快捷方式,进入快捷方式目录。
创建GroupA\UserA1, GroupA\UserA2, GroupB\UserB1, GroupB\UserB2, AdminGroupC\AdminC1, AdminGroupC\AdminC2 6个用户目录,每个用户目录添加对应用户的全部允许权限。
在客户端登陆不同用户,验证配置Windows客户端
Windows客户端
对于Windows客户端,参考 Windows客户端以AD域用户身份挂载并使用SMB文件系统 的方式一将Windows客户端连接到AD域。注意不连接到AD域,则不可能在用户登陆时挂载主目录。
如果使用Windows Server作为客户端,需要允许这些用户登陆。注意需要设置用户组属性为Administrator,不然无法登陆。
登陆UserA1
发现Z盘挂载了UserA1的主目录。可以进行修改操作。
通过网络路径进入NAS SMB文件系统,发现不能进入其他部门的目录,可以进入自己部门的目录。可以进入自己部门目录的其他用户的目录但是不能修改或者创建文件。可以进入自己部门的shared目录并且修改创建文件。
登陆AdminC1
发现Z盘挂载了AdminC1的主目录。可以进行修改操作。
通过网络路径进入NAS SMB文件系统,可以进入所有部门的目录,查看文件或者创建文件。
Linux客户端
参考 Linux客户端以AD域用户身份挂载并使用阿里云SMB协议文件系统,可以将Linux客户端接入AD域和NAS SMB文件系统。
MacOS客户端
参考 MacOS客户端通过阿里云VPN连接阿里云NAS SMB文件系统,可以用VPN将线下MacOS客户端接入到阿里云VPC,接入到AD域和文件系统。
总结
以上是简单的AD域连接NAS SMB文件系统,配置用户和群组,完成客户端挂载的整个流程。客户可以参照上述方案,举一反三,完成配置User Profile,调整默认权限等等定制化的配置。User Profile功能请参考 阿里云SMB协议文件系统AD身份认证和ACL权限控制使用场景 - Home Directory / User Profile。