このトピックでは、AD ドメインユーザーとして Linux クライアントに SMB ファイルシステムをマウントする方法について説明します。また、マウント後のファイルシステムへのアクセス方法と、ファイルおよびディレクトリのアクセス制御リスト (ACL) の管理方法についても説明します。
前提条件
-
SMB ファイルシステムのマウントターゲットが AD ドメインに追加されています。詳細については、「SMB ファイルシステムのマウントターゲットを AD ドメインに追加する」をご参照ください。
-
SMB ファイルシステムと互換性のあるバージョンの Linux オペレーティングシステムをご使用ください。詳細については、「制限事項」および「推奨カーネルイメージ」をご参照ください。
背景
SMB ファイルシステムのマウントターゲットを AD ドメインに追加する前は、匿名ユーザーとしてのみファイルシステムをマウントして使用できます。マウントターゲットをドメインに追加した後、匿名ユーザーからのアクセスを引き続き許可するかどうかを選択できます。
-
匿名アクセスを引き続き許可する場合、クライアントは Kerberos 認証を使用してドメインアイデンティティでファイルシステムにアクセスするか、NTLM 認証を使用して Everyone グループのメンバーとしてアクセスできます。
-
匿名アクセスを許可しない場合、Kerberos 認証プロトコルを使用する Linux クライアントのみが AD ドメインユーザーとしてファイルシステムをマウントできます。
以下の手順では、Ubuntu と CentOS を例として、AD ドメインユーザーとして SMB ファイルシステムをマウントしてアクセスする方法を説明します。
方法1:ドメイン参加済みクライアントでのマウント
-
Linux クライアントにログインします。
-
Linux クライアントを AD ドメインに参加させます。
-
-
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) -
AD ドメインユーザーにログオン権限を付与します。
-
特定のユーザーにログオン権限を付与します。
sudo realm permit usera1@example-company.com sudo realm permit userb1@example-company.com userb2@example-company.com -
特定のグループにログオン権限を付与します。
sudo realm permit -g 'Security Users' sudo realm permit -g 'Domain Users' 'Domain Admins' -
すべてのユーザーにログオン権限を付与します。
sudo realm permit --all -
すべてのユーザーのログオン権限を拒否します。
sudo realm deny --all
-
-
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
-
-
SSH ログインを設定します。
-
/etc/ssh/sshd_config 設定ファイルを開き、ログイン設定を次のように変更します。
PasswordAuthentication yes -
オペレーティングシステムに対応するコマンドを実行して、SSHD サービスを再起動します。
-
CentOS
service sshd restart -
Ubuntu
service ssh restart
-
-
-
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 -
SMB ファイルシステムをマウントします。
-
必要なマウントツールをインストールします。
-
Ubuntu
sudo apt-get install keyutils cifs-utils -
CentOS
sudo yum install keyutils cifs-utils
-
-
ユーザーとチケット情報を確認します。
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) -
次のコマンドを実行して、ファイルシステムをマウントします。
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 --verbose205dee4****-uub48.us-west-1.nas.aliyuncs.comをご自身のファイルシステムのマウントターゲットアドレスに置き換えてください。説明NAS コンソールで 転送中の暗号化を有効化 を選択した場合、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 ユーザーのグループ。 -
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 ドメインユーザーとしてログインした後、
ls /share/usera1コマンドを実行し、SMB ファイルシステムの usera1 ディレクトリ配下の内容を表示できれば、設定は成功です。
-
方法2:非ドメイン参加クライアントでのマウント
-
Linux クライアントにログインします。
-
AD サーバーに接続します。
-
-
ローカルユーザーアカウントを使用して、Kerberos チケット情報を取得してキャッシュします。
-
新しいローカルユーザーを作成し、そのユーザーの UID と GID を記録します。
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) -
新しいローカルユーザーとして、AD ユーザーの Kerberos チケットを取得します。
kinit administrator@EXAMPLE-COMPANY.COM klistuser1@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 :~$
-
-
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 --verbose205dee4****-uub48.us-west-1.nas.aliyuncs.comをご自身のファイルシステムのマウントターゲットアドレスに置き換えてください。説明NAS コンソールで 転送中の暗号化を有効化 を選択した場合、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 ユーザーのグループ。 -
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 ドメインユーザーとしてログインした後、
ls /share/usera1コマンドを実行し、SMB ファイルシステムの usera1 ディレクトリ配下の内容を表示できれば、設定は成功です。
-
cifsacl による SMB ACL の管理
getcifsacl コマンドと setcifsacl コマンドを使用して、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$