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

始める前に

このタスクについて

SMBファイルシステムのマウントターゲットをADドメインに参加させる前に、SMBファイルシステムをマウントして、匿名ユーザーとしてのみ使用できます。 SMBファイルのマウントターゲットをADドメインに結合した後、SMBファイルシステムへの匿名アクセスを許可するかどうかを指定できます。
  • SMBファイルシステムで匿名アクセスが許可されている場合は、ADアカウントを使用してKerberos認証に基づいてSMBファイルシステムにアクセスできます。 Everyoneグループに属するアカウントを使用して、NT 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-hostnam e myubuntu.example-company.com
        上記のコマンドでは、example-company.comはADドメインの名前です。 ビジネスシナリオに基づいて名前を置き換えます。
        設定が完了したら、hostnamectlコマンドを実行して、Linuxクライアントの指定された名前を確認します。 90
      3. DNSを設定します。
        次のコマンドを実行して、DNSの自動更新機能を無効にします。
        sudo systemctl disable systemd-resolved
        sudo systemctl stop systemd-resolved
        Add the IP address of the AD server to the /etc/resolv.conf file. DNSpingコマンドを実行します。 ADサーバーの名前をPingして、ネットワーク接続を確認します。 3
      4. 次のコマンドを実行して、指定したADドメインを検索します。
        レルムdiscover <ADドメイン>
        10
      5. LinuxクライアントをADドメインに参加させます。
        sudo kinit Administrator@EXAMPLE-COMPANY.COM
        sudo realm join -U Administrato r example-company.com
        realm listコマンドを実行します。 次のような結果が表示された場合、LinuxクライアントはADドメインに参加します。 11
      6. 次のコードを実行して、ADユーザーのホームディレクトリを作成します。
        sudo bash -c "cat > /usr/share/pam-configs/mkhomedir" <<EOF
        名前: activate mkhomedir
        デフォルト: はい
        優先度: 900
        セッションタイプ: 追加
        セッション:
                必須pam_mkhomedir.so umask=0022 skel=/etc/skel
        EOF
        次のコマンドを実行して、上記の設定を有効にします。
        pam-auth-update
        設定が有効になったら、上矢印キーまたは下矢印キーを押してカーソルを移動し、スペースバーキーを押してアスタリスク (*) を追加します。 activate mkhomedirオプションの先頭にアスタリスク (*) が付いていることを確認してください。 [Ok] が選択されるまでTabキーを押します。 次に、Enterキーを押して設定を完了します。 111
      7. Linux sssdサービスを設定します。
        krb5_ccname_template=FILE:% d/krb5cc_% Uエントリを /etc/sssd/sssd.conf設定ファイルに追加します。 2次のコマンドを実行してsssdサービスを再起動し、サービスのステータスを確認します。
        sudo systemctl再起動sssd
        sudo systemctlステータスsssd
        次のような結果が表示された場合は、Linux sssdサービスが設定されます。 21
    • CentOS
      1. 次のコマンドを実行して、ADサーバーに接続するために必要な構成パッケージをインストールします。
        sudo yumの更新
        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-hostnam e mycentos.example-company.com
        上記のコマンドでは、example-company.comはADドメインの名前です。 ビジネスシナリオに基づいて名前を置き換えます。
        設定が完了したら、hostnamectlコマンドを実行して、Linuxクライアントの指定された名前を確認します。 ADサーバの指定された名前を確認する
      3. DNSを設定します。
        ADサーバのIPアドレスを /etc/resolv.conf設定ファイルに追加し、デフォルトのDNSサーバの設定を削除します。 DNSpingコマンドを実行します。 ADサーバーの名前をPingして、ネットワーク接続を確認します。 3
      4. Kerberosを設定します。
        次のコードを /etc/krb5.conf設定ファイルに追加します。
            default_tgs_enctypes=des-cbc-crc des-cbc-md5 rc4-hmac aes256-cts-hmac-sha1-96
            default_tkt_enctypes=des-cbc-crc des-cbc-md5 rc4-hmac aes256-cts-hmac-sha1-96
            permitted_enctypes=des-cbc-crc des-cbc-md5 rc4-hmac aes256-cts-hmac-sha1-96
        15
      5. 次のコマンドを実行して、指定したADドメインを検索します。
        レルムディスコr example-company.com
        e example-company.com ADドメインを検索する
      6. LinuxクライアントをADドメインに参加させます。
        sudo realm join -U Administrato r example-company.com
        realm listコマンドを実行します。 次のような結果が表示された場合、LinuxクライアントはADドメインに参加します。 LinuxクライアントをADドメインに参加させる
  3. 次のidコマンドを実行して、ADユーザーのidを照会します。
    id testuser@example-company.com
    以下の情報と同様の結果が現れた場合、ADユーザが特定される。 22
  4. ADユーザーにログイン権限を付与します。
    • 次のコマンドを実行して、指定したADユーザーにLinuxクライアントにログインする権限を付与します。
      sudoレルム許可usera1@example-company.com
      sudoレルム許可userb1@example-company.com userb2@example-company.com 
    • 次のコマンドを実行して、指定したグループにLinuxクライアントにログインする権限を付与します。
      sudo realm permit -g「セキュリティユーザー」
      sudo realm permission-g「ドメインユーザー」「ドメインアド」
    • 次のコマンドを実行して、すべてのユーザーにLinuxクライアントへのログイン権限を付与します。
      sudoレルム許可-すべて
    • 次のコマンドを実行して、すべてのユーザーからLinuxクライアントにログインする権限を取り消します。
      sudoレルム拒否-すべて
  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
    • 名前が複数の単語で構成されている指定されたグループにsudo権限を付与します。
      % domain\ admins@example-company.com ALL=(ALL) ALL
  6. Secure Shell (SSH) ログイン設定を構成します。
    /etc/ssh/sshd_config SSH設定ファイルを開き、元のSSHログイン設定を次の設定に置き換えます。
    PasswordAuthenticationはい
    次のシステム固有のコマンドを実行して、SSHDサービスを再起動します。
    • CentOS
      サービスsshdの再起動
    • Ubuntu
      サービスsshの再起動
  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 // 205dee494a3-uub48.us-west-1.nas.aliyuncs.com/myshare /mnt -o vers=2.1、sec=krb5、cruid=371801107、uid=371801107、gid=371800513 -- verbose
      Apsara file Storage 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 :// 205dee494a3-uub48.us-west-1.nas.aliyuncs.com/myshare/&
    3. 次のコマンドを実行してautofsサービスを再起動します。
      systemctl autofs.serviceを再起動する
    4. 自動マウント機能が期待どおりに有効になっているかどうかを確認します。
      たとえば、// 205dee494a3-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を設定します。
        次のコマンドを実行して、DNSの自動更新機能を無効にします。
        sudo systemctl disable systemd-resolved
        sudo systemctl stop systemd-resolved
        Add the IP address of the AD server to the /etc/resolv.conf file. DNSpingコマンドを実行します。 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=des-cbc-crc des-cbc-md5 rc4-hmac aes256-cts-hmac-sha1-96
            default_tkt_enctypes=des-cbc-crc des-cbc-md5 rc4-hmac aes256-cts-hmac-sha1-96
            permitted_enctypes=des-cbc-crc des-cbc-md5 rc4-hmac aes256-cts-hmac-sha1-96
        15
  3. SMBファイルシステムのマウント対象のチケット情報を保存します。
    1. 次のコマンドを実行して、usera1という名前のローカルユーザーを作成し、ローカルユーザーのUIDとGIDを表示します。 次に、ローカルユーザーのUIDとGIDを記録します。
      useradd usera1
      su - usera1
      id usera1
      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 // 205dee494a3-uub48.us-west-1.nas.aliyuncs.com/myshare /mnt -o vers=2.1、sec=krb5、cruid=1004、uid=1004、gid=1004 -- verbose

      上記のコマンドでは、cruidおよびuidパラメーターの値はusera1のUIDを示し、gidパラメーターの値はusera1のGIDを示します。

      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 :// 205dee494a3-uub48.us-west-1.nas.aliyuncs.com/myshare/&
    3. 次のコマンドを実行してautofsサービスを再起動します。
      systemctl autofs.serviceを再起動する
    4. 自動マウント機能が期待どおりに有効になっているかどうかを確認します。
      たとえば、// 205dee494a3-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 /mnt/usera1 /
57
setcifsacl -a "ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI | CI/FULL" /mnt/usera1
58