赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 文件存储NAS
  4. 操作指南
  5. 高级管理
  6. 管理用户权限
  7. NAS SMB ACL
  8. Linux客户端以AD域用户身份挂载并使用SMB文件系统

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

  • NAS SMB ACL
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

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

前提条件

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

  • 使用适配SMB文件系统的Linux操作系统版本。更多信息,请参见使用限制和推荐内核镜像。

背景信息

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

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

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

以下步骤以Ubuntu和CentOS为例介绍如何以AD域身份挂载访问SMB文件系统。

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

  1. 登录Linux客户端。

  2. Linux客户端加入AD域。

    • Ubuntu操作系统

      1. 安装AD服务器配置包。

        sudo apt-get update
        sudo apt-get -y install realmd libnss-sss libpam-sss sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit krb5-user
      2. 配置Linux客户端在AD域的机器名。

        sudo hostnamectl set-hostname myubuntu.example-company.com

        其中,example-company.com为AD域名称,请您根据实际业务场景配置。

        配置完成后,执行hostnamectl命令检查已配置的客户端机器名称。90

      3. 配置DNS。

        1. 执行以下命令停止DNS的自动更新。

          sudo systemctl disable systemd-resolved
          sudo systemctl stop systemd-resolved

        2. 将AD服务器IP写入/etc/resolv.conf中。DNS

        3. 执行ping命令,pingAD服务器名称验证连通性。3

      4. 查找AD域。

        realm discover <AD domain>

        10

      5. Linux客户端加入AD域。

        sudo kinit Administrator@EXAMPLE-COMPANY.COM
        sudo realm join -U Administrator example-company.com

        执行realm list命令,如果回显包含如下类似信息,说明Linux客户端已加入AD域。11

      6. 配置以AD域用户登录时的home目录。

        1. 配置home目录。

          sudo bash -c "cat > /usr/share/pam-configs/mkhomedir" <<EOF
          Name: activate mkhomedir
          Default: yes
          Priority: 900
          Session-Type: Additional
          Session:
                  required                        pam_mkhomedir.so umask=0022 skel=/etc/skel
          EOF

        2. 执行以下命令激活该配置。

          pam-auth-update

        3. 激活后,通过上下键移动光标,并使用空格键增加选项标记*,请确保activate mkhomedir选项前标记为*,然后使用Tab键将光标移动至Ok,即完成设置。111

      7. 配置Linux sssd服务。

        1. 在配置文件/etc/sssd/sssd.conf中,写入krb5_ccname_template=FILE:%d/krb5cc_%U。2

        2. 执行以下命令重启sssd服务并确认服务状态。

          sudo systemctl restart sssd
          sudo systemctl status sssd

          如果回显包含如下类似信息,说明Linux sssd服务已配置成功。21

    • CentOS操作系统

      1. 安装AD服务器配置包。

        sudo yum update
        sudo yum install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python-utils -y
      2. 配置Linux客户端在AD域的机器名。

        sudo hostnamectl set-hostname mycentos.example-company.com

        其中,example-company.com为AD域名称,请您根据实际业务场景配置。

        配置完成后,执行hostnamectl命令检查已配置的客户端机器名称。Linux AD挂载

      3. 配置DNS。

        将AD服务器IP写入/etc/resolv.conf中,删除默认的DNS服务器。DNS执行ping命令,pingAD服务器名称验证连通性。3

      4. 配置Kerberos。

        请在配置文件/etc/krb5.conf中添加如下内容。

            default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
            default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
            permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

        15

      5. 查找AD域。

        realm discover example-company.com

        AD挂载Linux002

      6. Linux客户端加入AD域。

        sudo realm join -U Administrator example-company.com

        执行realm list命令,如果回显包含如下类似信息,说明Linux客户端已加入AD域。AD挂载Linux003

  3. 执行id命令,查询AD域用户身份状态。

    id testuser@example-company.com

    如果回显包含如下类似信息,说明AD域用户身份能被正常识别。22

  4. 添加AD域用户登录权限。

    • 授予指定用户登录Linux客户端的权限。

      sudo realm permit usera1@example-company.com
      sudo realm permit userb1@example-company.com userb2@example-company.com 
    • 授予指定用户组登录Linux客户端的权限。

      sudo realm permit -g 'Security Users'
      sudo realm permit -g 'Domain Users' 'Domain Admins'
    • 授予所有用户登录Linux客户端的权限。

      sudo realm permit --all
    • 授予禁止所有用户登录Linux客户端的权限。

      sudo realm deny --all
  5. 为AD域用户添加sudo权限。

    执行以下命令打开sudo配置文件,并根据业务场景配置sudo权限。

    sudo vim /etc/sudoers.d/domain_admins
    • 为指定用户添加sudo权限。

      usera1@example-company.com     ALL=(ALL)   ALL
      userb2@example-company.com     ALL=(ALL)   ALL
    • 为指定用户组添加sudo权限。

      %admingroupc1@example-company.com     ALL=(ALL)   ALL
    • 为指定多word组成组名的用户组添加sudo权限。

      %domain\ admins@example-company.com       ALL=(ALL)       ALL
  6. 配置SSH登录项。

    1. 打开/etc/ssh/sshd_config配置文件,修改如下登录配置项:

      PasswordAuthentication yes
    2. 执行以下命令重启SSHD服务。

      • CentOS

        service sshd restart
      • Ubuntu

        service ssh restart
  7. 以AD域身份登录Linux客户端。

    ssh localhost -l usera1@example-company.com

    如果回显包含如下类似信息,说明已使用AD域身份登录Linux客户端。27

  8. 挂载SMB文件系统。

    1. 安装挂载工具包。

      • Ubuntu

        sudo apt-get install keyutils cifs-utils
      • CentOS

        sudo yum install keyutils cifs-utils
    2. 查询keytab信息。

      执行id命令查看登录后的uid、gid信息。20

    3. 执行以下命令挂载文件系统。

      sudo mount -t cifs //205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare /mnt -o vers=2.1,sec=krb5,cruid=371801107,uid=371801107,gid=371800513  --verbose

      其中,205dee4****-uub48.us-west-1.nas.aliyuncs.com为文件系统挂载点地址,请根据实际值替换。

      说明

      如果控制台SMB ACL选项中选择了启用传输加密,则需要使用vers=3.0挂载。

  9. 添加自动挂载配置。

    挂载完成后,添加自动挂载配置。重启Linux客户端,将自动完成挂载。

    1. 在配置文件/etc/auto.master中,添加如下选项:

      /share    /etc/auto.cifs    --timeout=30 --ghost
    2. 按如下示例修改配置文件/etc/auto.cifs内容:

      * -fstype=cifs,vers=2.1,sec=krb5,cruid=${UID},uid=${UID},gid=${GID},file_mode=0700,dir_mode=0700 ://205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/&

      重要参数字段说明如下,请根据实际值替换。

      • cruid和uid:为本地usera1用户的ID。

      • gid:为本地usera1用户的group。

      • 205dee4****-uub48.us-west-1.nas.aliyuncs.com:为文件系统挂载点地址。

        您可以在文件存储控制台文件系统列表页面,单击目标文件系统前的image..png图标,在挂载点列表的挂载点地址列,将鼠标置于挂载点地址.png图标,获取挂载点地址。

    3. 重启autofs服务。

      systemctl restart autofs.service
    4. 确认自动挂载配置结果。

      假设创建了//205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/usera1目录,权限设置为用户usera1拥有所有权限。

      在AD域用户登录后,执行ls /share/usera1命令,就能够查看到SMB文件系统目录usera1下的内容即配置成功。

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

  1. 登录Linux客户端。

  2. 连接AD服务器。

    • Ubuntu操作系统

      1. 安装AD服务器配置包。

        sudo apt-get -y install keyutils cifs-utils krb5-user
      2. 配置DNS。

        1. 执行以下命令停止DNS的自动更新。

          sudo systemctl disable systemd-resolved
          sudo systemctl stop systemd-resolved

        2. 将AD服务器IP写入/etc/resolv.conf中。DNS

        3. 执行ping命令,pingAD服务器名称验证连通性。3

    • CentOS操作系统

      1. 安装AD服务器配置包。

        sudo yum install keyutils cifs-utils krb5-workstation
      2. 配置DNS。

        将AD服务器IP写入/etc/resolv.conf中,删除默认的DNS服务器。DNS执行ping命令,pingAD服务器名称验证连通性。3

      3. 配置Kerberos。

        请在配置文件/etc/krb5.conf中添加如下内容。

            default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
            default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
            permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

        15

  3. 以本地用户身份保存SMB文件系统挂载点的票据信息。

    1. 新建本地用户并记录新建用户的UID和GID。

      useradd usera1
      su - usera1
      id

      usera1

    2. 使用新建的本地用户保存SMB文件系统挂载点的票据信息。

      kinit administrator@EXAMPLE-COMPANY.COM
      klist

      21

  4. 挂载SMB文件系统。

    1. 安装挂载工具包。

      • Ubuntu

        sudo apt-get install keyutils cifs-utils
      • CentOS

        sudo yum install keyutils cifs-utils
    2. 执行以下命令挂载文件系统。

      sudo mount -t cifs //205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare /mnt -o vers=2.1,sec=krb5,cruid=1004,uid=1004,gid=1004  --verbose

      其中,205dee4****-uub48.us-west-1.nas.aliyuncs.com为文件系统挂载点地址,请根据实际值替换。

      说明

      如果控制台SMB ACL选项中选择了启用传输加密,则需要使用vers=3.0挂载。

  5. 添加自动挂载配置。

    挂载完成后,添加自动挂载配置。重启Linux客户端,将自动完成挂载。

    1. 在配置文件/etc/auto.master中,添加如下选项:

      /share    /etc/auto.cifs    --timeout=30 --ghost
    2. 按如下示例修改配置文件/etc/auto.cifs内容:

      * -fstype=cifs,vers=2.1,sec=krb5,cruid=${UID},uid=${UID},gid=${GID},file_mode=0700,dir_mode=0700 ://205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/&

      重要参数字段说明如下,请根据实际值替换。

      • cruid和uid:为本地usera1用户的ID。

      • gid:为本地usera1用户的group。

      • 205dee4****-uub48.us-west-1.nas.aliyuncs.com:为文件系统挂载点地址。

        您可以在文件存储控制台文件系统列表页面,单击目标文件系统前的image..png图标,在挂载点列表的挂载点地址列,将鼠标置于挂载点地址.png图标,获取挂载点地址。

    3. 重启autofs服务。

      systemctl restart autofs.service
    4. 确认自动挂载配置结果。

      假设创建了//205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/usera1目录,权限设置为用户usera1拥有所有权限。

      在AD域用户登录后,执行ls /share/usera1命令,就能够查看到SMB文件系统目录usera1下的内容即配置成功。

使用cifsacl工具管理SMB文件系统ACL

您可以使用getcifsacl和setcifsacl命令管理SMB文件系统ACL。示例如下:

getcifsacl usera1/

57

sudo setcifsacl -a "ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI|CI|I/FULL" usera1/

58

相关文章

文件存储NAS SMB ACL概述 2025-04-22 12:08

本文简要介绍NAS SMB ACL卷的根目录默认值、相关特性及工作原理。 背景信息 ACL权限控制表是一项重要的企业级特性。在SMB文件系统不连通AD服务时,NAS SMB卷的ACL是只读的,用户登录身份为匿名(Everyone)。阿里云SMB协议文

将SMB文件系统挂载点接入AD域 2025-04-22 12:08

通过将SMB文件系统的挂载点接入AD域内,您可以在AD域中实现文件系统用户身份的认证管理和文件级别的访问权限控制。以AD域用户身份挂载使用SMB文件系统之前,您需要在AD域内为SMB文件系统注册服务,生成Keytab密钥表文件并上传至NAS控制台开启SMB ACL功能。 前提条件

Windows客户端以AD域用户身份挂载并使用SMB文件系统 2025-04-22 12:08

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

Linux客户端以AD域用户身份挂载并使用SMB文件系统 2025-04-22 12:08

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

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号