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

更新时间:
复制为 MD 格式

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

前提条件

背景信息

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

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

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

以下步骤以UbuntuCentOS为例介绍如何以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.comAD域名称,请您根据实际业务场景配置。

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

        user1@myubuntu:/home$ sudo hostnamectl set-hostname myubuntu.example-company.com
        user1@myubuntu:/home$ hostnamectl
           Static hostname: myubuntu.example-company.com
                 Icon name: computer-vm
                   Chassis: vm
                Machine ID: 20210623112404781463487467590001
                   Boot ID: 0702ff766c504355a16f9b27e467a6f6
            Virtualization: kvm
          Operating System: Ubuntu 20.04.2 LTS
                    Kernel: Linux 5.4.0-77-generic
              Architecture: x86-64
        user1@myubuntu:/home$
      3. 配置DNS。

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

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

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

          # Generated by NetworkManager
          search example-company.com
          nameserver 172.19.0.61
        3. 执行ping命令,pingAD服务器名称验证连通性。

          user1@myubuntu:/home$ ping example-company.com
          PING example-company.com (172.19.0.61) 56(84) bytes of data.
          64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=1 ttl=128 time=0.274 ms
          64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=2 ttl=128 time=0.289 ms
          64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=3 ttl=128 time=0.270 ms
          64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=4 ttl=128 time=0.273 ms
          ^C
          --- example-company.com ping statistics ---
          4 packets transmitted, 4 received, 0% packet loss, time 3073ms
          rtt min/avg/max/mdev = 0.270/0.276/0.289/0.007 ms
      4. 查找AD域。

        realm discover <AD domain>
        user1@myubuntu:/home$ realm discover example-company.com
        example-company.com
          type: kerberos
          realm-name: EXAMPLE-COMPANY.COM
          domain-name: example-company.com
          configured: kerberos-member
          server-software: active-directory
          client-software: sssd
          required-package: sssd-tools
          required-package: sssd
          required-package: libnss-sss
          required-package: libpam-sss
          required-package: adcli
          required-package: samba-common-bin
          login-formats: %U@example-company.com
          login-policy: allow-realm-logins
      5. Linux客户端加入AD域。

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

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

        user1@myubuntu:/home$ realm list
        example-company.com
          type: kerberos
          realm-name: EXAMPLE-COMPANY.COM
          domain-name: example-company.com
          configured: kerberos-member
          server-software: active-directory
          client-software: sssd
          required-package: sssd-tools
          required-package: sssd
          required-package: libnss-sss
          required-package: libpam-sss
          required-package: adcli
          required-package: samba-common-bin
          login-formats: %U@example-company.com
          login-policy: allow-realm-logins
      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,即完成设置。

          Pluggable Authentication Modules (PAM) determine how authentication, authorization, and password changing are handled on the
          system, as well as allowing configuration of additional actions to take when starting user sessions.
          Some PAM module packages provide profiles that can be used to automatically adjust the behavior of all PAM-using applications
          on the system.  Please indicate which of these behaviors you wish to enable.
          PAM profiles to enable:
              [*] Pwquality password strength checking
              [*] activate mkhomedir
              [*] Unix authentication
              [*] SSS authentication
              [*] Register user sessions in the systemd control group hierarchy
              [*] Inheritable Capabilities Management
                              <Ok>                        <Cancel>
      7. 配置Linux sssd服务。

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

          [sssd]
          domains = example-company.com
          config_file_version = 2
          services = nss, pam
          [domain/example-company.com]
          default_shell = /bin/bash
          krb5_store_password_if_offline = True
          cache_credentials = True
          krb5_realm = EXAMPLE-COMPANY.COM
          realmd_tags = manages-system joined-with-adcli
          id_provider = ad
          fallback_homedir = /home/%u@%d
          ad_domain = example-company.com
          use_fully_qualified_names = True
          ldap_id_mapping = True
          access_provider = ad
          krb5_ccname_template=FILE:%d/krb5cc_%U
        2. 执行以下命令重启sssd服务并确认服务状态。

          sudo systemctl restart sssd
          sudo systemctl status sssd

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

          root@iZrj90myfgaf70i4jqsmr9Z:~# systemctl status sssd
          ● sssd.service - System Security Services Daemon
             Loaded: loaded (/lib/systemd/system/sssd.service; enabled; vendor preset: enabled)
             Active: active (running) since Fri 2021-03-12 14:00:21 CST; 3s ago
           Main PID: 21279 (sssd)
              Tasks: 4 (limit: 9315)
             Memory: 42.2M
             CGroup: /system.slice/sssd.service
                     ├─21279 /usr/sbin/sssd -i --logger=files
                     ├─21300 /usr/libexec/sssd/sssd_be --domain example.com --uid 0 --gid 0 --logger=files
                     ├─21301 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
                     └─21302 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --logger=files
    • 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.comAD域名称,请您根据实际业务场景配置。

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

        [user1@mycentos root]$ sudo hostnamectl set-hostname mycentos.example-company.com
        [user1@mycentos root]$ hostnamectl
           Static hostname: mycentos.example-company.com
                 Icon name: computer-vm
                   Chassis: vm
                Machine ID: 20210623110808105647395700239158
                   Boot ID: e8fded82c87f4fe783e3c75263c854d9
            Virtualization: kvm
          Operating System: CentOS Linux 8
               CPE OS Name: cpe:/o:centos:centos:8
                    Kernel: Linux 4.18.0-305.12.1.el8_4.x86_64
              Architecture: x86-64
      3. 配置DNS。

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

        [user1@mycentos root]$ ping example-company.com
        PING example-company.com (172.19.0.61) 56(84) bytes of data.
        64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=1 ttl=128 time=0.221 ms
        64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=2 ttl=128 time=0.334 ms
        64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=3 ttl=128 time=0.314 ms
        64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=4 ttl=128 time=0.323 ms
        ^C
        --- example-company.com ping statistics ---
        4 packets transmitted, 4 received, 0% packet loss, time 3044ms
        rtt min/avg/max/mdev = 0.221/0.298/0.334/0.045 ms
      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
        # To opt out of the system crypto-policies configuration of krb5, remove the
        # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
        includedir /etc/krb5.conf.d/
        [logging]
            default = FILE:/var/log/krb5libs.log
            kdc = FILE:/var/log/krb5kdc.log
            admin_server = FILE:/var/log/kadmind.log
        [libdefaults]
            dns_lookup_realm = false
            ticket_lifetime = 24h
            renew_lifetime = 7d
            forwardable = true
            rdns = false
            pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
            spake_preauth_groups = edwards25519
        #    default_realm = EXAMPLE.COM
            default_ccache_name = KEYRING:persistent:%{uid}
            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
        [realms]
        # EXAMPLE.COM = {
        #     kdc = kerberos.example.com
        #     admin_server = kerberos.example.com
        # }
        [domain_realm]
        # .example.com = EXAMPLE.COM
        # example.com = EXAMPLE.COM
      5. 查找AD域。

        realm discover example-company.com
        [user1@mycentos root]$ realm discover example-company.com
        example-company.com
          type: kerberos
          realm-name: EXAMPLE-COMPANY.COM
          domain-name: example-company.com
          configured: no
          server-software: active-directory
          client-software: sssd
          required-package: oddjob
          required-package: oddjob-mkhomedir
          required-package: sssd
          required-package: adcli
          required-package: samba-common-tools
      6. Linux客户端加入AD域。

        sudo realm join -U Administrator example-company.com

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

        [user1@mycentos root]$ realm list
        example-company.com
          type: kerberos
          realm-name: EXAMPLE-COMPANY.COM
          domain-name: example-company.com
          configured: kerberos-member
          server-software: active-directory
          client-software: sssd
          required-package: oddjob
          required-package: oddjob-mkhomedir
          required-package: sssd
          required-package: adcli
          required-package: samba-common-tools
          login-formats: %U@example-company.com
          login-policy: allow-realm-logins
  3. 执行id命令,查询AD域用户身份状态。

    id testuser@example-company.com

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

    [user1@mycentos root]$ id usera1@example-company.com
    uid=371801107(usera1@example-company.com) gid=371800513(domain users@example-company.com) groups=371800513(domain users@example-company.com)
  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客户端。

    [user1@mycentos root]$ ssh localhost -l usera1@example-company.com
    The authenticity of host 'localhost (127.0.0.1)' can't be established.
    ECDSA key fingerprint is SHA256:t/sEr63muG4UvBiAODXW9cHuMDBUlWUXO3cQ4xxmN78.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
    usera1@example-company.com@localhost's password:
    Welcome to Alibaba Cloud Elastic Compute Service !
    Activate the web console with: systemctl enable --now cockpit.socket
  8. 挂载SMB文件系统。

    1. 安装挂载工具包。

      • Ubuntu

        sudo apt-get install keyutils cifs-utils
      • CentOS

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

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

      [usera1@example-company.com@mycentos ~]$ klist
      Ticket cache: KCM:371801107:64031
      Default principal: usera1@EXAMPLE-COMPANY.COM
      Valid starting       Expires              Service principal
      08/31/2021 07:56:42  08/31/2021 17:56:42  krbtgt/EXAMPLE-COMPANY.COM@EXAMPLE-COMPANY.COM
              renew until 09/07/2021 07:56:42
      [usera1@example-company.com@mycentos ~]$ id
      uid=371801107(usera1@example-company.com) gid=371800513(domain users@example-company.com) groups=371800513(domain users@example-company.com),371801110(groupa@example-company.com)
    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/&

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

      • cruiduid:为本地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中。

          # Generated by NetworkManager
          search example-company.com
          nameserver 172.19.0.61
        3. 执行ping命令,pingAD服务器名称验证连通性。

          user1@myubuntu:/home$ ping example-company.com
          PING example-company.com (172.19.0.61) 56(84) bytes of data.
          64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=1 ttl=128 time=0.274 ms
          64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=2 ttl=128 time=0.289 ms
          64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=3 ttl=128 time=0.270 ms
          64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=4 ttl=128 time=0.273 ms
          ^C
          --- example-company.com ping statistics ---
          4 packets transmitted, 4 received, 0% packet loss, time 3073ms
          rtt min/avg/max/mdev = 0.270/0.276/0.289/0.007 ms
    • CentOS操作系统

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

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

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

        [user1@mycentos root]$ ping example-company.com
        PING example-company.com (172.19.0.61) 56(84) bytes of data.
        64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=1 ttl=128 time=0.221 ms
        64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=2 ttl=128 time=0.334 ms
        64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=3 ttl=128 time=0.314 ms
        64 bytes from 172.19.0.61 (172.19.0.61): icmp_seq=4 ttl=128 time=0.323 ms
        ^C
        --- example-company.com ping statistics ---
        4 packets transmitted, 4 received, 0% packet loss, time 3044ms
        rtt min/avg/max/mdev = 0.221/0.298/0.334/0.045 ms
      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
        # To opt out of the system crypto-policies configuration of krb5, remove the
        # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
        includedir /etc/krb5.conf.d/
        [logging]
            default = FILE:/var/log/krb5libs.log
            kdc = FILE:/var/log/krb5kdc.log
            admin_server = FILE:/var/log/kadmind.log
        [libdefaults]
            dns_lookup_realm = false
            ticket_lifetime = 24h
            renew_lifetime = 7d
            forwardable = true
            rdns = false
            pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
            spake_preauth_groups = edwards25519
        #    default_realm = EXAMPLE.COM
            default_ccache_name = KEYRING:persistent:%{uid}
            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
        [realms]
        # EXAMPLE.COM = {
        #     kdc = kerberos.example.com
        #     admin_server = kerberos.example.com
        # }
        [domain_realm]
        # .example.com = EXAMPLE.COM
        # example.com = EXAMPLE.COM
  3. 以本地用户身份保存SMB文件系统挂载点的票据信息。

    1. 新建本地用户并记录新建用户的UIDGID。

      useradd usera1
      su - usera1
      id
      [root@iZrj9gqbtl7kefeqxxx ~]# useradd usera1
      [root@iZrj9gqbtl7kefeqxxx ~]# su - usera1
      [usera1@iZrj9gqbtl7kefeqxxx ~]$ id
      uid=1004(usera1) gid=1004(usera1) groups=1004(usera1)
    2. 使用新建的本地用户保存SMB文件系统挂载点的票据信息。

      kinit administrator@EXAMPLE-COMPANY.COM
      klist
      user1@iZrj9gqbtl7xxx          :~$ kinit administrator@EXAMPLE-COMPANY.COM
      Password for administrator@EXAMPLE-COMPANY.COM:
      user1@iZrj9gqbtl7xxx          :~$ klist
      Ticket cache: FILE:/tmp/krb5cc_1000
      Default principal: administrator@EXAMPLE-COMPANY.COM
      Valid starting       Expires              Service principal
      09/08/2021 05:47:53  09/08/2021 15:47:53  krbtgt/EXAMPLE-COMPANY.COM@EXAMPLE-COMPANY.COM
              renew until 09/09/2021 05:47:49
      user1@iZrj9gqbtl7xxx          :~$
  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/&

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

      • cruiduid:为本地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

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

getcifsacl usera1/
usera1@example-company.com@myubuntu:/mnt$ getcifsacl usera1/
REVISION:0x1
CONTROL:0x8404
OWNER:S-1-5-21-2849381876-3817135681-4198507328-1107
GROUP:S-1-5-21-2849381876-3817135681-4198507328-513
ACL:S-1-5-21-2849381876-3817135681-4198507328-1107:ALLOWED/I/FULL
ACL:S-1-3-0:ALLOWED/OI|CI|IO|I/FULL
ACL:S-1-5-18:ALLOWED/OI|CI|I/FULL
ACL:S-1-5-32-544:ALLOWED/OI|CI|I/FULL
ACL:S-1-5-21-3076751034-3769290925-1520581464-512:ALLOWED/OI|CI|I/FULL
sudo setcifsacl -a "ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI|CI|I/FULL" usera1/
usera1@example-company.com@myubuntu:/mnt$ sudo setcifsacl -a "ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI|CI|I/FULL" usera1/
usera1@example-company.com@myubuntu:/mnt$ getcifsacl usera1
REVISION:0x1
CONTROL:0x8004
OWNER:S-1-5-21-2849381876-3817135681-4198507328-1107
GROUP:S-1-5-21-2849381876-3817135681-4198507328-513
ACL:S-1-5-21-2849381876-3817135681-4198507328-1107:ALLOWED/I/FULL
ACL:S-1-3-0:ALLOWED/OI|CI|IO|I/FULL
ACL:S-1-5-18:ALLOWED/OI|CI|I/FULL
ACL:S-1-5-32-544:ALLOWED/OI|CI|I/FULL
ACL:S-1-5-21-3076751034-3769290925-1520581464-512:ALLOWED/OI|CI|I/FULL
ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI|CI|I/FULL
usera1@example-company.com@myubuntu:/mnt$