このトピックでは、Active Directory (AD) ドメインアカウントを使用して、サーバーメッセージブロック (SMB) ファイルシステムをLinuxクライアントにマウントする方法について説明します。 このトピックでは、ADドメインアカウントを使用して、SMBファイルシステム内のファイルおよびディレクトリのアクセス制御リスト (ACL) を表示および構成する方法についても説明します。
前提条件
SMBファイルシステムのマウントターゲットは、ADドメインに参加しています。 詳細については、「SMBファイルシステムのマウントターゲットをADドメインに追加する」をご参照ください。
SMBファイルシステムでサポートされているLinuxディストリビューションが使用されます。 詳細については、「制限」および「推奨カーネルイメージ」をご参照ください。
背景情報
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ファイルシステムをマウントする
Linuxクライアントにログインします。
LinuxクライアントをADドメインに参加させます。
次のidコマンドを実行して、ADドメインユーザーのidを照会します。
id testuser@example-company.com
次の例に似た出力が表示された場合、ADドメインユーザーが識別されます。
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
を付与します。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
Secure Shell (SSH) ログイン設定を構成します。
/etc/ssh/sshd_config SSH設定ファイルを開き、元のSSHログイン設定を次の設定に置き換えます。
PasswordAuthentication yes
次のシステム固有のコマンドを実行して、SSHDサービスを再起動します。
CentOS
service sshd restart
Ubuntu
service ssh restart
次のコマンドを実行して、ADドメインユーザーとしてLinuxクライアントにログインします。
ssh localhost -l usera1@example-company.com
次の例に似た出力が表示された場合、Linuxクライアントへのログインは成功です。
SMBファイルシステムをLinuxクライアントにマウントします。
次のシステム固有のコマンドを実行して、SMBファイルシステムのマウントに必要なツールキットをインストールします。
Ubuntu
sudo apt-get install keyutils cifs-utils
CentOS
sudo yum install keyutils cifs-utils
keytabファイルに関する情報を照会します。
idコマンドを実行して、ログイン後のUIDとGIDを表示します。
次のコマンドを実行して、ファイルシステムをマウントします。
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に変更します。
自動マウント機能を有効にします。
ファイルシステムをマウントした後、自動マウント機能を有効にします。 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 ://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コンソールにログインします。 ファイルシステムリスト ページで、表示するファイルシステムを見つけ、アイコンをクリックします。 マウントターゲット列のアイコンの上にポインターを移動します。
次のコマンドを実行してautofsサービスを再起動します。
systemctl restart autofs.service
自動マウント機能が期待どおりに有効になっているかどうかを確認します。
たとえば、// 205dee4 **** -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サーバーに接続します。
SMBファイルシステムのマウント対象のチケット情報を保存します。
次のコマンドを実行して、usera1という名前のローカルユーザーを作成し、ローカルユーザーのUIDとGIDを表示します。 次に、ローカルユーザーのUIDとGIDを記録します。
useradd usera1 su - usera1 id
次のコマンドを実行して、ローカルユーザーを使用してSMBファイルシステムのマウントターゲットに関するチケット情報を保存します。
kinit administrator@EXAMPLE-COMPANY.COM klist
SMBファイルシステムをLinuxクライアントにマウントします。
次のシステム固有のコマンドを実行して、SMBファイルシステムのマウントに必要なツールキットをインストールします。
Ubuntu
sudo apt-get install keyutils cifs-utils
CentOS
sudo yum install keyutils cifs-utils
次のコマンドを実行して、ファイルシステムをマウントします。
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に置き換えます。
自動マウント機能を有効にします。
ファイルシステムをマウントした後、自動マウント機能を有効にします。 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 ://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コンソールにログインします。 ファイルシステムリスト ページで、表示するファイルシステムを見つけ、アイコンをクリックします。 マウントターゲット列のアイコンの上にポインターを移動します。
次のコマンドを実行してautofsサービスを再起動します。
systemctl restart autofs.service
自動マウント機能が期待どおりに有効になっているかどうかを確認します。
たとえば、// 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/
sudo setcifsacl -a "ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI|CI|I/FULL" usera1/