Windows Server 2019 域环境搭建 SMB 共享文件服务,之前的一篇文章已经介绍了使用 Windows Server 2016 搭建 SMB 共享文件服务。不论你使用的 Server 2019 还是 Server 2016 具体的搭建步骤是一样的,没有太大的区分。在开始之前你需要对权限有一点了解,不然后续你可能会懵。出现了问题不知道是哪一步的问题。
0x01 准备工作
本文会分几个步骤,注意看仔细理解、区分。步骤分为:创建 SMB 服务、共享权限、读写权限、验证权限。在创建SMB服务之前你需要先搭建域控制器并规划好组织单元、用户组、创建用户。SMB 共享文件服务,主要使用用户组权限来区分用户权限。
本文举例:
- 组织单元:HR、IT;
- 用户组:HR、IT;
- 用户:001用户属于IT组、002用户输入HR组;
- 共享文件结构规划:D:\共享文件 → HR → 部门、共享
- 共享文件结构规划:D:\共享文件 → IT → 部门、共享
- 共享文件权限规划:共享文件 → HR 目录下的部门目录HR组访问读写权限,其他用户组用户不可见;
- 共享文件权限规划:共享文件 → HR 目录下的共享目录所有用户组都可以访问只读权限,HR组访问读写权限;
- 共享文件权限规划:共享文件 → IT 目录下的部门目录IT组访问读写权限,其他用户组用户不可见;
- 共享文件权限规划:共享文件 → IT 目录下的共享目录所有用户组都可以访问只读权限,IT组访问读写权限;
0x02 创建 SMB 服务
服务器管理器 → 添加角色和功能;

开始之前,看看了解就行了,下一步;

安装类型,选择基于角色或基于功能的安装,下一步;

服务器选择,从服务器池中选择服务器,选择好服务器,下一步;

服务器角色,文件和存储角色 → 文件服务器资源管理器 → 添加功能;(文件服务器,在我们将服务器设置为辅助域服务器时已经自动添加了这个功能,如果你是一台新的成员服务器需要勾选这个文件服务器)

服务器角色,文件服务器资源管理器,已勾选状态,下一步;

功能,勾选 SMB 1.0/CIFS Files Sharing Support,下一步;

确认,勾选如果需要,自动重新启动目标服务器,安装;(可以不勾选,后续角色、功能安装完毕手动重启服务器)

结果,功能安装,等待安装完毕系统会自动重启;

服务器自动重启中;

结果,安装进度,服务器重启后查看安装进度已安装成功,关闭;(至此 SMB 共享的服务器角色、功能已经安装完毕)

0x03 共享权限
下面开始创建共享文件及设置共享文件的权限,服务器管理 → 文件和存储服务;

共享,此界面可以看到域控制器已经创建了NETLOGON、SYSVOL共享;

共享,新建共享;

新建共享向导,选择配置文件,文件共享配置选择:SMB 共享-高级,下一步;(高级共享可以设置配额,虽然用不到)

共享位置,键入自定义路径,下一步;(这个路径你可以提前创建好,然后在这里浏览到你创建的文件夹目录即可)

共享名称,共享名称、共享描述、要共享的本地路径、要共享的远程路径,其中共享名称和描述可以修改,本地路径和远程路径建议不要修改,使用系统默认。下一步;

其他设置,勾选启用基于存取的枚举(如果没有勾选那么用户可以看到没有访问权限的文件夹,勾选后对用户没有权限的文件夹会自动隐藏)、勾选允许共享缓存(先勾选上吧,需要配合BranchCache使用)、勾选加密数据访问(勾选上没啥影响,局域网内难道还有人想要通过抓包来截取数据?)

权限,重点来了,这里设置的是那些用户组可以访问共享,如果用户没有在这些用户组将无法访问共享。自定义权限 → 禁用继承 → 将已继承的权限转换为对此对象的显式权限;

权限,添加输入IT、HR用户组名,检查名称,确定;

设置IT、HR用户组的权限为读取和执行、列出文件夹内容、读取,确定;(所有添加的用户组都是这三个权限,如果设置了修改,那么用户可以在D:\共享文件\目录下随意创建和删除文件)

权限,添加了IT、HR两个用户组,权限为读取和执行,应用 → 确定;

权限,权限已经设置完毕,下一步;(举例:后续架构变更新增了研发部、销售部、售后部等,在域服务器已经创建了这些部门的组织单元、用户组,想要这些部门访问共享文件,就需要把这些部门的用户组这里)

管理属性,勾选用户文件,下一步;

配额,选择不应用配额,下一步;(启用了配额的话如果文件夹达到了配额的容量将无法在新增文件,不建议启用,不然后续就是折腾自己)

确认,确认配置,创建;

结果,查看创建的的进度及结果都是现实已完成,关闭;(至此 SMB 共享文件的共享访问权限已经设置完毕,不知道各位有没有理解这个共享访问的权限)

服务器管理器 → 文件和存储服务 → 共享,现在已经有了一个共享文件,使用 SMB 协议,本地路径为D:\共享文件;

0x04 读写权限
上面的步骤创建 SMB 共享的角色、功能、共享访问权限,下面要设置的也是关键,设置不正确读写权限用户就无法读取或者写入。读写权限需要在 D:\共享文件目录进行设置;根据举例需要在D:\共享文件目录下创建HR、IT两个文件夹;

然后在HR、IT目录下载创建部门和共享这两个文件夹;


目录创建完毕后下面开始设置目录权限,以HR目录举例。HR → 属性;

HR属性 → 安全 → 高级;

HR高级完全设置 → 禁用继承 → 将已继承的权限转换为此对象的显式权限;

HR的高级安全设置如下图,保留Administrators、SYSTEM、CREATOR OWNER这三个系统自带的用户组和IT、HR用户组,其他的系统用户组可以删除;应用 → 确定;(D:\共享文件\HR的权限为IT、HR组都可以访问读取但是不能写入)

设置 D:\共享文件\HR\部门 文件夹的权限,举例这个部门文件夹只有HR组可以访问读取写入,其他用户组无法访问;部门文件夹 → 属性 → 安全 → 高级;

部门的高级安全设置 → 禁用继承 → 将已继承的权限转换为此对象的显式权限;

部门的高级安全设置 → 选中IT组 → 删除;

部门的高级安全设置 → 选中HR组 → 编辑;

部门的权限项目 → 勾选权限如下图 → 确定;(下图中的权限勾选有错误,勾选删除子文件夹及文件,取消勾选删除这个权限,勾选了这个权限用户可以删除根目录也就是 D:\共享文件\HR\部门 这个文件夹,共享文件涉及到删除权限的都需要谨慎;)

部门的高级安全设置 → 应用 → 确定;(HR组的权限为修改,尽量不要给完全控制权限)至此,D:\共享文件\HR\部门 这个文件夹的权限已经设置完毕,只有HR组的用户可以看到并访问读取写入文件,其他用户组隐藏无法看到这个部门文件夹;

共享文件夹的权限修改,举例 D:\共享文件\HR\共享 这个文件夹所有用户组都可以访问读取,只有HR组可以读写。共享文件夹 → 属性 → 安全 → 高级;

共享的高级安全设置 → 禁用继承 → 将已继承的权限转换为此对象的显式权限;

转换完成后如下图,权限都为读取和执行,下一步需要修改权限;

共享的高级安全设置 → 选中HR组 → 编辑;

共享的权限项目 → 勾选权限如下图 → 确定;(下图中的权限勾选有错误,勾选删除子文件夹及文件,取消勾选删除这个权限,勾选了这个权限用户可以删除根目录也就是 D:\共享文件\HR\共享 这个文件夹,共享文件涉及到删除权限的都需要谨慎;)

共享的高级安全设置权限 → 应用 → 确定;设置完毕,HR为修改、IT为读取和执行;D:\共享文件\HR\共享 这个目录只有HR组有读写权限,其他用户组都是访问和读取权限;(3个系统权限除外,无需设置)
至此,D:\共享文件\HR 及HR目录下的部门和共享权限已经设置完毕,D:\共享文件\IT 目录权限参照HR的设置步骤进行设置,如有其它新建目录都可以参照设置;

0x05 验证权限
001账户属于IT组,以 001 账户登录,访问共享文件验证权限设置是否正确;举例001账户可以访问 \\服务器名或IP\共享文件\IT 目录下所有文件夹并都可以读取和写入;\\服务器名或IP\共享文件\HR 目下下只能访问共享文件夹并没有写入权限;
访问 \\172.0.0.253\共享文件 可以看到HR和IT目录;

访问 \\172.0.0.253\共享文件\IT 可以看到部门和共享文件夹;

\\172.0.0.253\共享文件\IT 目录下创建一个新的文件夹报错,因为权限限制了所以报错;只能部门或者共享下创建文件夹或者文件;

\\172.0.0.253\共享文件\IT\部门 目录下新建 txt 文件,OK!

\\172.0.0.253\共享文件\IT\共享 目录下新建 txt 文件,OK!

下面是IT组用户001 访问 \\172.0.0.253\共享文件\HR 目录权限验证。可以访问到HR目录,但是只能看到共享文件夹,看不到部门文件夹;

\\172.0.0.253\共享文件\HR 新建文件夹报错;因为只有只读权限所有无法新建或者修改保存文件;

\\172.0.0.253\共享文件\HR\共享 新建文件夹报错;因为只有只读权限所有无法新建或者修改保存文件;

至此 Windows Server 2019 域环境搭建 SMB 共享文件服务整个图文教程已经完毕。建议各位不要着急动手,先规划好,理解权限在去设置。