Windows客户端以AD域用户身份挂载并使用SMB文件系统

本文介绍在Windows操作系统中,如何以AD域身份挂载SMB文件系统。以及挂载成功后,如何以AD域身份访问SMB协议文件系统,查看和编辑文件或目录的ACL。

前提条件

SMB文件系统挂载点已接入AD域。具体操作,请参见SMB文件系统挂载点接入AD

背景信息

SMB文件系统挂载点接入AD域前,仅支持以匿名用户身份挂载并使用SMB文件系统。在SMB文件系统挂载点接入AD域后,您可以设置是否继续允许匿名用户身份挂载访问。

  • 如果继续允许匿名访问文件系统,设备可以通过Kerberos认证以域身份访问文件系统,也可以通过NTLM认证以Everyone身份访问文件系统。

  • 如果已设置为不允许匿名访问文件系统,该文件系统将只允许通过Kerberos认证协议的Windows客户端以AD域用户身份进行挂载。

方式一:Windows客户端加入AD域并挂载SMB文件系统

以下步骤将以Windows Server 2012版本操作系统为例介绍如何将Windows客户端加入AD域并挂载SMB文件系统。

  1. 配置Windows客户端的DNS服务器地址。

    1. 登录Windows客户端。

    2. 在桌面左下角,单击开始

    3. 开始菜单栏,单击控制面板

    4. 控制面板对话框,选择网络和Internet > 网络和共享中心

    5. 网络与共享中心对话框查看活动网络区域,单击以太网

    6. 以太网属性对话框,单击属性

    7. 以太网属性对话框此连接使用下列项目:区域,选中Internet协议版本4(TCP/IPv4),单击属性

    8. Internet协议版本4(TCP/IPv4)属性对话框,选中使用下面的DNS服务器地址,设置DNS服务器地址为AD域服务器的IP地址。SMB_ACl_DNS

    9. 使用命令提示符工具执行ping命令,pingAD域名,验证Windows客户端和AD域之间的连通性。SMB ACL001

  2. Windows客户端加入AD域。

    1. 控制面板对话框,选择系统和安全 > 系统

    2. 系统对话框计算机名、域和工作组设置区域,单击更改设置

    3. 系统属性对话框,单击更改

    4. 计算机名/域更改对话框,填写已搭建的AD域名。根据界面提示,单击确定完成配置。SMB_ACl_AD_Domain

    5. 重启Windows客户端,使修改配置生效。

  3. 挂载SMB文件系统。

    AD域身份登录Windows客户端,使用命令提示符工具执行以下命令,挂载SMB文件系统。

    net use z: \\nas-mount-target.nas.aliyuncs.com\myshare

方式二:Windows客户端连接AD服务器并挂载SMB文件系统

以下步骤将以Windows Server 2012版本操作系统为例介绍通过配置DNS服务器连接AD服务器,然后挂载SMB文件系统。

  1. 配置Windows客户端的DNS服务器地址。

    1. 登录Windows客户端。

    2. 在桌面左下角,单击开始

    3. 开始菜单栏,单击控制面板

    4. 控制面板对话框,选择网络和Internet > 网络和共享中心

    5. 网络与共享中心对话框查看活动网络区域,单击以太网

    6. 以太网属性对话框,单击属性

    7. 以太网属性对话框此连接使用下列项目:区域,选中Internet协议版本4(TCP/IPv4),单击属性

    8. Internet协议版本4(TCP/IPv4)属性对话框,选中使用下面的DNS服务器地址,设置DNS服务器地址为AD域服务器的IP地址。SMB_ACl_DNS

    9. 使用命令提示符工具执行ping命令,pingAD域名,验证Windows客户端和AD域之间的连通性。SMB ACL001

  2. 挂载SMB文件系统。

    Windows客户端,使用命令提示符工具执行以下命令,以AD域身份挂载SMB文件系统。

    net use z: \\nas-mount-target.nas.aliyuncs.com\myshare /user:EXAMPLE.com\USERNAME PASSWORD

    其中,EXAMPLE.com为您已搭建的AD域名。

管理SMB文件系统ACL

开启ACL功能并以AD域身份挂载SMB文件系统后,您可以采用以下方式查看和编辑文件或目录ACL。

mklink命令行工具

您可以使用mklink命令行工具,在Windows本地磁盘为SMB文件系统挂载点生成符号链接,同时查看和编辑文件或目录的ACL。

  1. 使用命令提示符工具创建文件系统映射。

    mklink /D c:\myshare \\nas-mount-target.nas.aliyuncs.com\myshare

    其中,\myshare为符号链接的文件系统路径,nas-mount-target.nas.aliyuncs.com\myshareSMB文件系统的挂载点。

  2. 为普通用户添加使用符号链接的权限。

    如果您使用系统管理员Administrator,请跳过此步骤。

    1. 使用系统管理员Administrator搜索并运行secpol.msc。secpol

    2. 本地安全策略对话框,选择本地策略用户权限分配,按照页面提示将指定用户加入创建符号链接的权限组中。AD挂载SMBsecpol_03

    3. 使用普通用户重新登录Windows客户端。

  3. 访问SMB文件系统并查看文件或目录ACL。

    生成符号链接后,您可以以访问Windows本地磁盘子目录的形式访问SMB文件系统,同时支持查看和编辑文件或目录的ACL。

Windows文件资源管理器

Windows本地磁盘为SMB文件系统挂载点生成符号链接,可以通过Windows的文件资源管理器(File Explorer)查看、编辑文件和目录的ACL。

  1. 找到目标文件或目录,右键单击属性set_sec_02

  2. 属性对话框,单击安全页签,然后单击编辑set_sec_03

  3. 在权限对话框,单击添加,按照页面提示填写相关信息。set_sec_04set_sec_05

在使用Windows文件资源管理器查看SMB文件系统时,如果需要回退本地磁盘路径,请单击回退(下图中的标注1)或者上退(下图中的标注2)按钮,但是不要选中路径中的某一段(下图中的标注3)来回退。文件管理器访问SMB文件

在使用Windows文件资源管理器访问和使用文件系统时,阿里云SMB文件系统并没有实际加入用户的AD域。如果不是通过本地磁盘路径C:\myshare访问文件系统,而是通过普通网络路径\\nas-mount-point.nas.aliyuncs.com\myshare访问,在设置ACL时,会遇到因RPC服务器不可用而无法确定NAS挂载点是否已加入域的情况。SMB_ACL_系统提示_1SMB_ACL_系统提示_2

重要

Windows文件资源管理器对C:\myshare修改权限并不会应用到文件系统的根目录。修改根目录权限需要使用Set-Acl Powershell命令或者icacls命令行。

PowerShell命令

Windows PowerShell支持Get-AclSet-Acl来查看和编辑文件或目录ACL。

  • Get-Acl

    $value = Get-Acl -Path "Z:"# Set properties
    $value.Access

    Get-Acl

    Set properties
    $identity = "Administrator"
    $fileSystemRights = "FullControl"
    $type = "Allow"
    # Create new rule
    $fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $type
    $fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList
    # Apply new rule
    $value.SetAccessRule($fileSystemAccessRule)
    $value.Access

    set

  • Set-Acl

    Set-Acl命令修改权限不需要mylink c:\myshare快捷方式,可以直接修改挂载盘路径,也可以修改根目录权限。

    Set-Acl $value -Path "Z:"
    重要

    根目录权限修改最好在文件系统刚创建时就设置妥当,否则由于继承机制,命令会需要修改子目录和子文件。

icacls命令

icacls命令是Windows命令行中的ACL操作标准命令。您可以通过icacls命令查看和编辑文件或目录ACL。

示例:

icacls z:
#添加用户的完全控制权限
icacls z: /grant <用户名>:(F)
#添加administrator的完全控制权限
icacls z: /grant administrator:(F)
icacls z:
#删除用户的所有权限
icacls z: /remove <用户名>
#删除Everyone的所有权限
icacls z: /remove <用户名>
icacls z:

320