如果要为一个或多个用户配置通过网络访问文件的权限,您需要在存储这些文件的计算机上配置文件共享。部署共享资源以存储文件的常见方式是通过配置 Windows 文件共享。在这种情况下,我们谈论的是 Windows SMB 共享,这种文件共享可以在任何 Windows 版本上配置。
本博文将解释如何在 Windows Server 2019 上配置 Windows 文件共享,以允许多个用户访问此共享。
什么是文件共享
A file share is a directory on a computer, server, or virtual machine that contains files and directories that are accessible to other users via the network by using one of the supported file sharing protocols. A file share can be configured on any operating system supporting the appropriate file sharing protocol, for example, SMB or NFS. We have already covered the SMB protocol and its dialects.
客户端 Windows 版本(Windows XP、7、8、10 等)和服务器 Windows 版本(Windows Server 2003、2008、2012、2016、2019 等)都支持通过 SMB 协议进行 Windows 文件共享。然而,与客户端版本相比,Windows Server 版本提供了更多功能。例如,最大并发连接数。最近,我们比较了一个文件服务器和 NAS。在本博文中,我们将解释如何在 Windows 中设置一个用于文件共享的服务器,换句话说,如何配置文件服务器。
我们的 Windows 服务器环境
我们在工作组中的 Windows Server 2019 中配置了一个 Windows SMB 共享。在活动目录域中的 Windows 机器的配置原则是相同的,但在设置共享权限时,您需要在计算机上指定(确定)域用户和本地用户。
我们的 Windows 文件服务器的参数是:
- IP 地址:192.168.101.209
- 计算机名称:Win2019
这篇文章中的工作流程可用于较旧的Windows Server版本。至于客户端Windows版本,您可以基本上按照顶级版本(如Windows XP专业版、Windows 7终极版、Windows 10专业版等)的相同Windows文件共享工作流程进行操作。但是,请注意可能存在某些限制。
创建用户和组
首先,我们需要创建用户。从技术上讲,可以使用Windows中现有的用户帐户进行文件共享,但基于安全原因,不建议采用这种方法。这就是为什么我们不会使用现有的管理员和用户帐户来配置Windows文件共享,也不会向访问共享的用户提供这些凭据的原因。
我们将为需要访问文件共享服务器的用户创建特殊帐户。如果文件服务器上的用户名和密码与远程客户端计算机上的用户用于Windows登录的用户名和密码相同,则在访问Windows SMB共享时不会提示凭据。这个功能使用户更方便地访问文件共享,也更适合管理员。
打开计算机管理窗口,您可以通过转到服务器管理器 > 工具 > 计算机管理来访问它。或者,您也可以在CMD中直接运行compmgmt.msc命令。
注意:在活动目录域中,您需要在域控制器上打开Active Directory用户和计算机窗口以创建域用户和组。您可以通过在命令行或运行(Win+R)提示中运行dsa.msc来执行此操作。在域控制器上使用Active Directory用户和计算机而不是计算机管理。
创建用户
- 用户名,将用于访问Windows文件共享时进行用户身份验证。请记住,此帐户也可用于当前的Windows Server计算机登录。我们用户的名字是user1。
- 我们以相同方式创建更多用户。我们为访问文件共享服务器创建的用户是:
- user1, user2, user3, user4
- user11, user12, user13, user14
创建组
当您需要使用相同设置配置多个用户的访问权限时,管理用户组会更加方便。
在我们的文件共享服务器配置示例中,我们创建了两个用户组:
- Group_A – 用于提供文件共享的完全访问权限(读取、写入、更改)。该组包含以下成员:user1, user2, user3, user4。
- Group_B – 用于提供对共享的只读访问权限。该组包含以下成员:user11, user12, user13, user14。
您可以创建一个组,将用户添加到组中,并为组配置Windows SMB共享的访问权限,而不是在共享配置中单独添加每个用户,并为每个用户手动配置相同的设置。
要创建一个新组:
- 在计算机管理窗口中右键单击组,然后在上下文菜单中单击新建组。
- 在新建组窗口中输入组名(在我们的示例中为Group_A)(见下面的截图)。
- 单击添加以将用户添加到组中。
- 在选择用户窗口中,输入用户名,例如user1,然后单击检查名称。当用户名正确输入时,该用户名将被下划线标记,并显示为完整名称(计算机名\用户名或域名\用户名)。要继续添加用户,请按空格或添加分号并输入下一个用户名,然后单击检查名称,以此类推。
如果要为计算机上创建的本地用户帐户设置访问权限,该计算机是域成员,则手动输入完整的用户名,如此:计算机名称\用户名。您也可以类似地输入域用户的全名。
- 输入所有需要的用户名并检查它们后,点击确定保存设置并关闭选择用户窗口。
- 在新建组窗口中点击创建完成组创建。
Windows文件共享设置
一旦我们创建了所需的用户和组,我们可以继续设置Windows文件共享。
- 选择要共享的目录或选择一个新目录。在我们的示例中,我们创建一个新目录,该目录的路径是:
E:\share
- 右键单击此目录(文件夹),在上下文菜单中,点击属性。
设置共享权限
- 在目录属性窗口中选择共享选项卡,然后点击高级共享按钮。
- 在高级共享窗口中选中共享此文件夹复选框,然后点击权限。
您可以看到默认情况下,每个人都可以读取共享文件夹的内容。每个人是包含当前计算机上所有用户的默认组。在我们的示例中,我们选择每个人然后点击移除,因为我们需要创建自定义配置。
- 单击添加以添加所需用户和组,以配置对Windows SMB共享的访问权限。
- 打开选择用户或组窗口。
- 输入您想要配置访问权限的用户和组的名称。在我们的情况下,我们输入Group_A。
- 单击检查名称,就像您在向组中添加用户时所做的那样。如果名称正确(并存在),则输入的名称将被下划线标出并显示完整格式。如有需要,您可以输入多个用户或组名称。
- 单击确定以保存设置并关闭此窗口。
- 我们可以在共享文件夹的权限窗口中的组或用户名称列表中看到Group_A。
- 选择此用户/组(在我们的情况下为Group_A)并选中允许完全控制复选框。
- 然后,我们添加Group_B,就像添加Group_A一样。让我们保持对Group_B的只读共享权限。
- 我们还添加内置的管理员组,并为管理员启用完全访问权限。(如果计算机是域成员,则可以使用域管理员组)。
- 单击确定以保存Windows文件共享的权限并关闭权限窗口。
设置文件系统权限
我们已经为共享文件夹配置了文件共享权限。除此之外,我们必须为此文件夹配置文件系统权限,以设置用户的适当访问权限。NTFS 是我们在 Windows 卷上使用的文件系统。
- 在共享文件夹的 属性 窗口中选择 安全 选项卡。默认的 NTFS 权限已经为 CREATOR OWNER、SYSTEM、Administrators 和 Users 设置。
- 点击 编辑 来设置文件系统级别的文件夹权限。
- 如您所见,Users 组的用户默认具有对此文件夹的读取权限。
- 点击 添加 来添加所需的组或用户,并为他们设置文件系统级别的权限。
- 打开 选择用户或组 窗口。
- 输入您要添加的用户或组的名称(在我们的例子中是 Group_A)。
- 点击 检查名称。
- 点击 确定 以保存设置。
- 在用户和组列表中选择 Group_A。选择 允许完全控制 复选框以授予 Group_A 完全访问权限。
- 像添加 Group_A 一样添加 Group_B。
- 我们保留了默认权限,包括对 Group_B 的 读取和执行、列出文件夹内容 和 读取。
- 点击确定在权限窗口中。在共享文件夹属性窗口中点击确定。
我们已经配置了共享文件夹的共享权限和文件系统权限。类似地,您可以在文件共享服务器上创建其他共享。
访问Windows SMB共享
现在用户可以从他们的计算机访问Windows文件共享(SMB共享)。
要从另一台计算机访问Windows SMB共享,请打开Windows资源管理器(单击我的电脑或此电脑图标),然后在地址栏中输入文件服务器的网络地址,格式为:\\服务器IP地址或\\服务器名称
我们输入路径:
\\192.168.101.209
我们以user1的身份从Windows计算机访问此文件共享。
我们可以在我们的共享文件服务器上看到一个名为share的共享文件夹。
双击共享文件夹以访问其内容。我们看到共享文件夹中的文件。我们的user1是Group_A的成员,并且对共享文件夹内容拥有完全访问权限。此用户可以在此共享文件夹中编写、编辑和删除文件。
如何创建隐藏文件共享
创建隐藏的 Windows SMB 共享的工作流程是相同的。不同之处在于文件共享名称。在共享名称的末尾添加 $ 字符以使此共享目录隐藏,例如,share_h$。隐藏的文件共享在通过添加服务器 IP 地址或名称(例如 \\192.168.101.209 或 \\Server2019)浏览文件服务器时不会显示。
要访问隐藏的文件共享,必须输入共享的完整路径,例如:
\\192.168.101.209\share_h$
注意: Windows 中默认创建了用于系统目的和管理员访问的隐藏共享。
- C$ for a system volume and similar shares for each disk volume
- Admin$ – 访问 %SystemRoot% 目录(通常为 C:\Windows)
- IPC$ – 用于命名管道的远程 IPC
高级共享设置
在 Windows 图形用户界面的“网络和共享中心”中有高级共享设置。
要访问这些设置,请转到 控制面板>网络和共享中心>高级共享设置。
如果要在共享文件时使 Windows 计算机在网络上可见并允许用户访问共享资源,请选择正在使用的网络配置文件中的以下选项:
- 启用网络发现
- 启用文件和打印共享
这些设置会影响 Windows 防火墙设置,以允许 ICMP 和 SMB 流量。
TCP端口445和139必须在服务器防火墙上打开,以进行文件共享。确保Windows防火墙中的文件和打印机共享(SMB-In)规则已启用,以避免问题。
注意,在Windows中必须运行服务器服务才能使Windows文件共享正常工作。
如何映射网络驱动器
如上所述,用户可以输入共享路径以访问共享文件和文件夹。还可以创建共享文件夹的快捷方式。但是,这种方式对于一些用户可能不是最方便的。在这种情况下,您可以将文件共享映射为网络驱动器,并在我的电脑或此电脑(Windows资源管理器)中访问此网络驱动器,就像访问本地磁盘卷一样。
执行以下操作将网络驱动器映射为网络驱动器:
- 像上面解释的那样,在Windows资源管理器中访问文件共享服务器。在地址栏中输入服务器名称或IP地址,例如,\\192.168.101.209
- 等待直到显示共享文件夹列表。如果客户端和服务器的凭据不匹配,则可能需要输入用户名和密码。
- 右键单击要连接为网络驱动器的共享文件夹,然后单击映射网络驱动器。
- 在打开的窗口中为共享文件夹设置网络驱动器参数。
- 选择一个驱动器号,例如H:
- 已自动选择共享文件夹的路径。
- 登录时重新连接 – 当用户登录到客户端计算机的Windows时,共享文件夹将自动连接。
- 使用不同的凭据连接 – 如果您在客户端计算机上登录的用户帐户的凭据与配置在文件服务器上访问文件共享的用户帐户的凭据不匹配,则使用此选项。另一个用例是使用具有比当前登录用户更多权限的用户的凭据。
现在,您可以在Windows资源管理器中看到映射的网络驱动器,并使用它来访问文件共享服务器(文件服务器)上的文件夹。
如何检查Windows SMB共享状态
配置Windows文件共享是设置文件服务器的主要步骤。但是,您需要知道如何监视共享资源,包括共享文件夹、连接状态和已打开的文件。这些信息对故障排除也很有用。
您可以在计算机管理窗口中获取Windows文件共享状态,您可以通过在CMD中运行compmgmt.msc命令来访问该窗口。
去系统工具>共享文件夹在计算机管理窗口。在那里你可以找到三个项目:共享,会话和打开的文件。
- 共享。此项目显示当前 Windows 机器上共享的所有文件夹,包括隐藏的共享。
- 会话。此项目通过显示连接的用户、计算机和连接时间来显示所有活动会话。
- 打开的文件。显示在共享文件夹中打开的文件以及打开模式(读/写)。
您可以右键单击所需项目,例如已打开的会话或文件,并关闭此会话或文件(断开已连接的用户并移除文件锁定)。
在命令行中配置 Windows 文件共享
我们在图形用户界面(GUI)中执行的操作以设置 Windows 文件共享也可以在命令行界面(CMD)中执行。了解如何在 CMD 中配置 Windows SMB 共享可以帮助您自动化配置过程。
让我们使用与之前在 GUI 中配置的设置相同的设置来配置一个文件共享。
- 按下Win+R。在运行提示符中键入cmd并按Enter以打开 Windows 命令行。
- 添加一个用户并设置用户名和密码。
命令语法是:
net user username userpassword /add我们在 CMD 中添加user21 :
net user user21 Password-21 /add - 添加组的命令如下:
net localgroup 组名 /add在这种情况下我们添加组2:
net localgroup 组2 /add - 使用如下命令将用户添加到组中:
net localgroup 组名 用户名 /add - 现在我们需要创建一个新目录,我们将分享它。我们转到驱动器E:并创建share2c目录(c表示命令行或控制台,以便在我们的目录名称中更清晰)。
e:
md share2c - 列出目录内容以确保已创建目录:
dir - 通过设置文件夹路径、用户或组名以及此用户或组的权限来共享share2c目录。一般命令语法为:
net share sharename=folderpath /grant:username,permissions权限可以是读取,更改,或完全。
在我们的情况下,确切的命令是:
net share share2c=e:\share2c /grant:group2,full我们授予group2完全权限。
- 使用icacls设置共享文件夹的NTFS权限。
- 我们为 E:\share2c 目录设置了对 group2 的完全权限:
icacls “E:\share2c” /grant group2:(OI)(CI)F /T
您可以在下面的屏幕截图中看到如何在命令行中应用这些设置并显示在 GUI 中。
- 检查 Windows 文件共享状态。
- 管理 Windows 文件共享的有用命令。
- 关闭用户打开的文件,通过定义文件ID(ID 在 net files 命令中显示,您可以在上面的屏幕截图中看到):
net file id /close - 列出适当计算机名称的打开会话:
net session \\计算机名称 - 断开所选计算机的传入SMB连接:
net session \\计算机名称 /delete - 使用已登录凭据连接文件共享并将文件共享映射为网络驱动器:
net use H: \\文件服务器\共享文件夹如果文件共享包含空格,则必须在引号中括起路径(“路径”)。
- 备选命令:
pushd \\文件服务器\共享文件夹
结论
为文件共享配置服务器并不困难,特别是在Windows Server 2019上。请记住,授予多个用户访问权限后,Windows SMB共享和NFS共享上的文件可能会损坏或永久删除。请务必使用专用解决方案备份Windows服务器和文件共享服务器。最佳选择是支持多个平台的解决方案,如NAKIVO备份与复制。
Source:
https://www.nakivo.com/blog/create-file-share-windows-server/