このトピックでは、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ファイルシステムをマウントする
- Linux クライアントにログインします。
- LinuxクライアントをADドメインに参加させます。
- Ubuntu
- 次のコマンドを実行して、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
- 次のコマンドを実行して、ADドメインのLinuxクライアントに名前を付けます。
sudo hostnamectl set-hostnam e myubuntu.example-company.com
上記のコマンドでは、example-company.com
はADドメインの名前です。 ビジネスシナリオに基づいて名前を置き換えます。
設定が完了したら、
hostnamectlコマンドを実行して、Linuxクライアントの指定された名前を確認します。
- 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.
pingコマンドを実行します。 ADサーバーの名前を
Pingして、ネットワーク接続を確認します。
- 次のコマンドを実行して、指定したADドメインを検索します。
レルムdiscover <ADドメイン>
- LinuxクライアントをADドメインに参加させます。
sudo kinit Administrator@EXAMPLE-COMPANY.COM
sudo realm join -U Administrato r example-company.com
realm listコマンドを実行します。 次のような結果が表示された場合、LinuxクライアントはADドメインに参加します。
- 次のコードを実行して、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キーを押して設定を完了します。
- Linux sssdサービスを設定します。
krb5_ccname_template=FILE:% d/krb5cc_% Uエントリを
/etc/sssd/sssd.conf
設定ファイルに追加します。
次のコマンドを実行してsssdサービスを再起動し、サービスのステータスを確認します。
sudo systemctl再起動sssd
sudo systemctlステータスsssd
次のような結果が表示された場合は、Linux sssdサービスが設定されます。
- CentOS
- 次のコマンドを実行して、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
- 次のコマンドを実行して、ADドメインのLinuxクライアントに名前を付けます。
sudo hostnamectl set-hostnam e mycentos.example-company.com
上記のコマンドでは、example-company.com
はADドメインの名前です。 ビジネスシナリオに基づいて名前を置き換えます。
設定が完了したら、
hostnamectlコマンドを実行して、Linuxクライアントの指定された名前を確認します。
- DNSを設定します。
ADサーバのIPアドレスを
/etc/resolv.conf設定ファイルに追加し、デフォルトのDNSサーバの設定を削除します。
pingコマンドを実行します。 ADサーバーの名前を
Pingして、ネットワーク接続を確認します。
- 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
- 次のコマンドを実行して、指定したADドメインを検索します。
レルムディスコr example-company.com
- LinuxクライアントをADドメインに参加させます。
sudo realm join -U Administrato r example-company.com
realm listコマンドを実行します。 次のような結果が表示された場合、LinuxクライアントはADドメインに参加します。
- 次のidコマンドを実行して、ADユーザーのidを照会します。
id testuser@example-company.com
以下の情報と同様の結果が現れた場合、ADユーザが特定される。
- ADユーザーにログイン権限を付与します。
- 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
- Secure Shell (SSH) ログイン設定を構成します。
/etc/ssh/sshd_config SSH設定ファイルを開き、元のSSHログイン設定を次の設定に置き換えます。
PasswordAuthenticationはい
次のシステム固有のコマンドを実行して、SSHDサービスを再起動します。
- CentOS
サービスsshdの再起動
- Ubuntu
サービスsshの再起動
- 次のコマンドを実行して、ADユーザーとしてLinuxクライアントにログインします。
ssh localhost -l usera1@example-company.com
次のような結果が表示された場合、Linuxクライアントへのログインは成功です。
- SMBファイルシステムをLinuxクライアントにマウントします。
- 次のシステム固有のコマンドを実行して、SMBファイルシステムをマウントするために必要なツールキットをインストールします。
- keytabファイルに関する情報を照会します。
idコマンドを実行して、ログイン後のUIDとGIDを表示します。
- 次のコマンドを実行して、ファイルシステムをマウントします。
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に変更します。
- 自動マウント機能を有効にします。
ファイルシステムをマウントした後、自動マウント機能を有効にします。 Linuxクライアントを再起動すると、ファイルシステムが自動的にマウントされます。
- 次のエントリを /etc/auto.master設定ファイルに追加します。
/share /etc/auto.cifs -- timeout=30 -- ghost
- 次の例に基づいて、/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/&
- 次のコマンドを実行してautofsサービスを再起動します。
systemctl autofs.serviceを再起動する
- 自動マウント機能が期待どおりに有効になっているかどうかを確認します。
たとえば、
// 205dee494a3-uub48.us-west-1.nas.aliyuncs.com/myshare/usera1という名前のディレクトリを作成し、すべてのユーザーにusera1ディレクトリのフルアクセス権限を付与します。
ADユーザーはLinuxクライアントにログオンし、ls /share/usera1
コマンドを実行します。 SMBファイルシステムのusera1ディレクトリの内容が表示されている場合、自動マウント機能が有効になります。
方法2: LinuxクライアントをADサーバーに接続し、LinuxクライアントにSMBファイルシステムをマウントする
- Linux クライアントにログインします。
- LinuxクライアントをADサーバーに接続します。
- Ubuntu
- 次のコマンドを実行して、ADサーバーに接続するために必要な構成パッケージをインストールします。
sudo apt-get -y install keyutils cifs-utils krb5-user
- 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.
pingコマンドを実行します。 ADサーバーの名前を
Pingして、ネットワーク接続を確認します。
- CentOS
- 次のコマンドを実行して、ADサーバーに接続するために必要な構成パッケージをインストールします。
sudo yum install keyutils cifs-utils krb5-workstation
- DNSを設定します。
ADサーバのIPアドレスを
/etc/resolv.conf設定ファイルに追加し、デフォルトのDNSサーバの設定を削除します。
pingコマンドを実行します。 ADサーバーの名前を
Pingして、ネットワーク接続を確認します。
- 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
- SMBファイルシステムのマウント対象のチケット情報を保存します。
- 次のコマンドを実行して、usera1という名前のローカルユーザーを作成し、ローカルユーザーのUIDとGIDを表示します。 次に、ローカルユーザーのUIDとGIDを記録します。
useradd usera1
su - usera1
id usera1
- 次のコマンドを実行して、ローカルユーザーを使用して、SMBファイルシステムのマウントターゲットに関するチケット情報を保存します。
kinit administrator@EXAMPLE-COMPANY.COM
klist
- SMBファイルシステムをLinuxクライアントにマウントします。
- 次のシステム固有のコマンドを実行して、SMBファイルシステムをマウントするために必要なツールキットをインストールします。
- 次のコマンドを実行して、ファイルシステムをマウントします。
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に変更します。
- 自動マウント機能を有効にします。
ファイルシステムをマウントした後、自動マウント機能を有効にします。 Linuxクライアントを再起動すると、ファイルシステムが自動的にマウントされます。
- 次のエントリを /etc/auto.master設定ファイルに追加します。
/share /etc/auto.cifs -- timeout=30 -- ghost
- 次の例に基づいて、/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/&
- 次のコマンドを実行してautofsサービスを再起動します。
systemctl autofs.serviceを再起動する
- 自動マウント機能が期待どおりに有効になっているかどうかを確認します。
たとえば、
// 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 /
setcifsacl -a "ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI | CI/FULL" /mnt/usera1