すべてのプロダクト
Search
ドキュメントセンター

File Storage NAS:ADドメインユーザーとしてLinuxクライアントにSMBファイルシステムをマウントして使用する

最終更新日:Jul 30, 2024

このトピックでは、Active Directory (AD) ドメインアカウントを使用して、サーバーメッセージブロック (SMB) ファイルシステムをLinuxクライアントにマウントする方法について説明します。 このトピックでは、ADドメインアカウントを使用して、SMBファイルシステム内のファイルおよびディレクトリのアクセス制御リスト (ACL) を表示および構成する方法についても説明します。

前提条件

背景情報

SMBファイルシステムのマウントターゲットをADドメインに参加させる前に、SMBファイルシステムをマウントして、匿名ユーザーとしてのみ使用できます。 SMBファイルシステムのマウントターゲットをADドメインに結合した後、SMBファイルシステムへの匿名アクセスを許可するかどうかを指定できます。

  • SMBファイルシステムで匿名アクセスが許可されている場合は、ADドメインアカウントを使用して、Kerberos認証に基づいてSMBファイルシステムにアクセスできます。 Everyoneグループに属するアカウントを使用して、New Technology LAN Manager (NTLM) 認証に基づいてSMBファイルシステムにアクセスすることもできます。

  • SMBファイルシステムで匿名アクセスが許可されなくなった場合は、ADドメインアカウントを使用して、Kerberosを使用して認証されたLinuxクライアントにSMBファイルシステムをマウントする必要があります。

この例では、UbuntuとCentOSが使用されます。

方法1: LinuxクライアントをADドメインに結合し、Linuxクライアントに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. 次のコマンドを実行して、ADドメインのLinuxクライアントに名前を付けます。

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

        上記のコマンドでは、example-company.comはADドメインの名前です。 ビジネスシナリオに基づいて名前を置き換えます。

        設定が完了したら、hostnamectlコマンドを実行して、Linuxクライアントの指定された名前を確認します。90

      3. DNSを設定します。

        1. 次のコマンドを実行して、DNSの自動更新機能を無効にします。

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

        2. ADサーバーのIPアドレスを /etc/resolv.confファイルに追加します。DNS

        3. pingコマンドを実行します。 ADサーバーの名前をPingして、ネットワーク接続を確認します。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ドメインユーザーのホームディレクトリを作成します。

        1. 次のコマンドを実行してホームディレクトリを設定します。

          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オプションの先頭にアスタリスク (*) が付いていることを確認してください。 [Ok] が選択されるまでTabキーを押します。 次に、Enterキーを押して設定を完了します。111

      7. Linux sssdサービスを設定します。

        1. krb5_ccname_template=FILE:% d/krb5cc_% U/etc/sssd/sssd.conf設定ファイルに追加します。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. 次のコマンドを実行して、ADドメインのLinuxクライアントに名前を付けます。

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

        上記のコマンドでは、example-company.comはADドメインの名前です。 ビジネスシナリオに基づいて名前を置き換えます。

        設定が完了したら、hostnamectlコマンドを実行して、Linuxクライアントの指定された名前を確認します。Check the specified name of the AD server

      3. DNSを設定します。

        ADサーバのIPアドレスを /etc/resolv.conf設定ファイルに追加し、デフォルトのDNSサーバの設定を削除します。 DNSpingコマンドを実行します。 ADサーバーの名前をPingして、ネットワーク接続を確認します。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

        Search for the example-company.com AD domain

      6. LinuxクライアントをADドメインに参加させます。

        sudo realm join -U Administrator example-company.com

        realm listコマンドを実行します。 次の例に似た出力が表示される場合、LinuxクライアントはADドメインに参加します。Join the Linux client to the AD domain

  3. 次のidコマンドを実行して、ADドメインユーザーのidを照会します。

    id testuser@example-company.com

    次の例に似た出力が表示された場合、ADドメインユーザーが識別されます。22

  4. ADドメインユーザーにログイン権限を付与します。

    • 次のコマンドを実行して、指定した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. を付与します。Grant thesudoADドメインユーザーに対する権限。

    次のコマンドを実行して、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
    • 名前が複数の単語で構成されている指定のグループにsudo権限を付与します。

      %domain\ admins@example-company.com       ALL=(ALL)       ALL
  6. Secure Shell (SSH) ログイン設定を構成します。

    1. /etc/ssh/sshd_config SSH設定ファイルを開き、元のSSHログイン設定を次の設定に置き換えます。

      PasswordAuthentication yes
    2. 次のシステム固有のコマンドを実行して、SSHDサービスを再起動します。

      • CentOS

        service sshd restart
      • Ubuntu

        service ssh restart
  7. 次のコマンドを実行して、ADドメインユーザーとしてLinuxクライアントにログインします。

    ssh localhost -l usera1@example-company.com

    次の例に似た出力が表示された場合、Linuxクライアントへのログインは成功です。27

  8. SMBファイルシステムをLinuxクライアントにマウントします。

    1. 次のシステム固有のコマンドを実行して、SMBファイルシステムのマウントに必要なツールキットをインストールします。

      • 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はファイルシステムのマウントターゲットのドメイン名を指定します。 ビジネス要件に基づいて交換します。

      説明

      NASコンソールでSMBファイルシステムのACLを設定するときに [トランスポート暗号化の有効化] をオンにすると、上記のコマンドのvers=2.1を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という名前のローカルユーザーのグループID。

      • 205dee4 **** -uub48.us-west-1.nas.aliyuncs.com: ファイルシステムのマウント対象のドメイン名。

        ファイルシステムのマウント対象のドメイン名を取得するには、次の手順を実行します。NASコンソールにログインします。 ファイルシステムリスト ページで、表示するファイルシステムを見つけ、image..pngアイコンをクリックします。 マウントターゲット列のDomain name of the mount target.pngアイコンの上にポインターを移動します。

    3. 次のコマンドを実行してautofsサービスを再起動します。

      systemctl restart autofs.service
    4. 自動マウント機能が期待どおりに有効になっているかどうかを確認します。

      たとえば、// 205dee4 **** -uub48.us-west-1.nas.aliyuncs.com/myshare/usera1という名前のディレクトリを作成し、すべてのユーザーにusera1ディレクトリのフルアクセス権限を付与します。

      ADドメインユーザーとしてLinuxクライアントにログインし、ls /share/usera1コマンドを実行します。 SMBファイルシステムのusera1ディレクトリの内容が表示されている場合、自動マウント機能が有効になります。

方法2: LinuxクライアントをADサーバーに接続し、LinuxクライアントにSMBファイルシステムをマウントする

  1. Linuxクライアントにログインします。

  2. Linuxクライアントを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コマンドを実行します。 ADサーバーの名前をPingして、ネットワーク接続を確認します。3

    • CentOS

      1. 次のコマンドを実行して、ADサーバーに接続するために必要な構成パッケージをインストールします。

        sudo yum install keyutils cifs-utils krb5-workstation
      2. DNSを設定します。

        ADサーバのIPアドレスを /etc/resolv.conf設定ファイルに追加し、デフォルトのDNSサーバの設定を削除します。 DNSpingコマンドを実行します。 ADサーバーの名前をPingして、ネットワーク接続を確認します。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. 次のコマンドを実行して、usera1という名前のローカルユーザーを作成し、ローカルユーザーのUIDとGIDを表示します。 次に、ローカルユーザーのUIDとGIDを記録します。

      useradd usera1
      su - usera1
      id 

      usera1

    2. 次のコマンドを実行して、ローカルユーザーを使用してSMBファイルシステムのマウントターゲットに関するチケット情報を保存します

      kinit administrator@EXAMPLE-COMPANY.COM
      klist 

      21

  4. SMBファイルシステムをLinuxクライアントにマウントします。

    1. 次のシステム固有のコマンドを実行して、SMBファイルシステムのマウントに必要なツールキットをインストールします。

      • 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はファイルシステムのマウントターゲットのドメイン名を指定します。 ビジネス要件に基づいて交換します。

      説明

      NASコンソールでSMBファイルシステムのACLを設定するときに [トランスポート暗号化の有効化] をオンにする場合は、上記のコマンドのvers=2.1を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という名前のローカルユーザーのグループID。

      • 205dee4 **** -uub48.us-west-1.nas.aliyuncs.com: ファイルシステムのマウント対象のドメイン名。

        ファイルシステムのマウント対象のドメイン名を取得するには、次の手順を実行します。NASコンソールにログインします。 ファイルシステムリスト ページで、表示するファイルシステムを見つけ、image..pngアイコンをクリックします。 マウントターゲット列のDomain name of the mount target.pngアイコンの上にポインターを移動します。

    3. 次のコマンドを実行してautofsサービスを再起動します。

      systemctl restart autofs.service
    4. 自動マウント機能が期待どおりに有効になっているかどうかを確認します。

      たとえば、// 205dee4 **** -uub48.us-west-1.nas.aliyuncs.com/myshare/usera1という名前のディレクトリを作成し、すべてのユーザーにusera1ディレクトリのフルアクセス権限を付与します。

      ADドメインユーザーとしてLinuxクライアントにログインし、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