このトピックでは、File Storage NAS の SMB ファイルシステムにおけるデフォルトのルートディレクトリ権限、主な機能、およびアクセス制御リスト (ACL) の仕組みについて説明します。
背景情報
アクセス制御リスト (ACL) は、エンタープライズにとって重要な機能です。SMB ファイルシステムが Active Directory (AD) ドメインに接続されていない場合、ACL は読み取り専用となり、ユーザーは匿名 ID (Everyone) でのみログインできます。File Storage NAS の SMB サービスは、AD ドメインを介した ID ベースの認証とファイルシステムレベルのアクセス制御をサポートしています。自己管理型の AD サービスを SMB ファイルシステムに接続できます。これにより、AD ドメイン ID または Everyone としてファイルシステムをマウントし、ファイルやフォルダーに ACL 権限を設定できます。
ルートディレクトリのデフォルト権限
[Advanced Security Settings] で ACL が有効になっている NAS SMB ファイルシステムのルートディレクトリのデフォルト権限エントリには、次の 4 つのエントリが含まれます。
SYSTEM: フルコントロール、適用対象: このフォルダー、サブフォルダー、およびファイル
Administrators: フルコントロール、適用対象: このフォルダー、サブフォルダー、およびファイル
Everyone: フルコントロール、適用対象: このフォルダーのみ
CREATOR OWNER: フルコントロール、適用対象: サブフォルダーとファイルのみ
すべてのエントリの [継承元] は [なし] に設定されており、権限の継承は無効になっています (有効にするには [継承の有効化] をクリックします)。
-
デフォルト権限の設計思想
-
SYSTEM と Administrators の ACL エントリは Windows NTFS 権限に準拠しており、管理者権限を必要とするアプリケーションが正しく実行されることを保証します。Resource Access Management (RAM) と統合した後、これによりスーパー管理者に管理者権限を付与することもできます。
-
CREATOR OWNER 権限は継承を有効にし、これも Windows NTFS 権限に準拠しています。
-
SMB ACL の設定で 匿名アクセスを許可 を なし に設定できます。これにより、Everyone ID によるアクセスが防止され、ドメイン認証されたユーザーのみがファイルシステムにアクセスできるようになります。
-
-
既存のユーザー習慣との互換性
-
AD ドメインを使用しないユーザーをサポートするため、AD 機能が有効になる前に作成されたファイルやフォルダーに対して、Everyone ID にフルコントロールが付与されます。これにより、これらのユーザーが影響を受けないことが保証されます。AD ドメインを持たないユーザーは、NTLM プロトコルを介して Everyone としてファイルシステムをマウントし、Everyone が所有するコンテンツにアクセスできます。
-
新しい AD ユーザーによって作成されたファイルやフォルダーは、Everyone からの権限を継承しません。そのため、AD ドメインを持たないユーザーはこれらの新しいリソースにアクセスできません。作成者と管理者のみがアクセスできます。
-
AD ユーザーは、AD ドメインを持たないユーザー (つまり Everyone) によって作成されたファイルやフォルダーにアクセスできます。
-
SMB ACL の機能
複数 ID でのマウントは非サポート
単一の Windows セッションでは、1 つの ID でのみファイルシステムをマウントできます。たとえば、あるドメイン ID (USER A など) で SMB ファイルシステムをマウントした後、同じ Windows セッションで別の ID (USER C など) で再マウントすることはできません。これを試みると、[ネットワーク ドライブの割り当て] ダイアログボックスに「指定されたネットワークフォルダーは、現在、別のユーザー名とパスワードを使用してマップされています。別のユーザー名とパスワードを使用して接続するには、まずこのネットワーク共有への既存のマッピングを切断してください。」というエラーメッセージが表示されます。別の認証情報で再接続する前に、既存のマッピングを切断する必要があります。
緊急アクセス
悪意のあるユーザーが管理者や他のユーザーの権限を削除し、ファイルやフォルダーにアクセスできなくなった場合、管理者 ID でファイルシステムをマウントして権限を復元する必要があります。
File Storage NAS は、SMB ファイルシステム向けのスーパー管理者機能を提供します。コンソールでユーザーまたはグループをスーパー管理者として設定できます。スーパー管理者は、既存の権限チェックをバイパスして、任意のファイルとその権限を表示および変更できます。たとえば、悪意のあるユーザーがフォルダーの所有者を自分自身に変更し、「すべてのユーザーを拒否」ルールを設定した場合でも、スーパー管理者は正しい権限を復元できます。
コンソールでスーパー管理者の設定を更新した後は、SMB ファイルシステムを再マウントする必要があります。
Cygwin との連携
Cygwin は、POSIX アプリケーションを実行するために Windows 上で動作する POSIX 互換環境を提供します。SMB ACL を有効にすると、ユーザーのセキュリティ識別子 (SID)、グループ SID、および Windows の随意アクセス制御リスト (DACL) は、Cygwin 内で POSIX ユーザー ID (UID)、グループ ID (GID)、および POSIX ACL に変換されます。この変換の詳細については、「Cygwin ntsec.html」をご参照ください。
-
/etc/fstab に noacl オプションを追加します。
# /etc/fstab # # このファイルは、Cygwin プロセスツリーの最初のプロセスによって一度だけ読み込まれます。 # 変更を反映させるには、すべての Cygwin プロセスを再起動してください。説明については # https://cygwin.com/cygwin-ug-net/using.html#mount-table をご参照ください。 # これはデフォルトです: none /cygdrive cygdrive binary,noacl,posix=0,user 0 0noacl オプションが追加されると、Cygwin は複雑な ACL 変換を実行しません。代わりに、新しいファイルやフォルダーにデフォルトのモードを適用します。USER と GROUP は、現在の Windows ログインユーザーのユーザー名とグループに設定されます。基本的なルールは次のとおりです。
-
フォルダーのデフォルトモード、UID、GID は 755 です。
drwxr-xr-x 1 cat Domain Users 0 Jul 25 06:18 dir -
ファイルのデフォルトモード、UID、GID は 644 です。
-rw-r--r-- 1 cat Domain Users 0 Jul 25 06:42 file -
ファイルのモードは 644 または 444 にすることができます。
モードが 444 の場合、ファイルには DOS の読み取り専用属性が設定されます。noacl オプションは、ファイルの DOS 読み取り専用属性のみを変換します。
-
chmod コマンドはフォルダーの権限を変更できませんが、ファイルモードを 644 または 444 に変更することはできます。
-
chown および chgrp コマンドは効果がありません。
-
getfacl および setfacl コマンドはサポートされていません。
-
クライアント上のフォルダー権限は常に 755 と表示され、ファイル権限は 644 または 444 としか表示されないため、クライアントはアクセスが許可されていることを示しても、サーバーはリクエストを拒否することがあります。
-
-
/etc/fstab で acl オプションを使用します。
デフォルトでは、SMB ファイルシステムは Everyone 権限でマウントされます。これは Cygwin の OTHER に対応します。ファイルやフォルダーを作成する際、Cygwin は Linux のように動作し、自動的に chmod 操作を実行してデフォルトモードを設定します。フォルダーのデフォルトの OTHER 権限は r-x で、ファイルのデフォルトは r-- であるため、Everyone は r-x または r-- 権限しか持ちません。その結果、Everyone は新しいフォルダーに新しいファイルを作成できず、新しいファイルは Everyone にとって読み取り専用になります。
したがって、Cygwin を使用する場合は、acl オプションの代わりに noacl オプションを使用することを強く推奨します。
Linux システムにおける AD と ACL
-
mount -t cifsを使用して Linux 上にファイルシステムをマウントする場合、マウント用のドメインユーザー ID、およびファイルの GID、UID、ファイルモード、ディレクトリモードを指定できます。 -
ファイルシステムを使用する際、クライアントはマウントされた UID、GID、およびログインしているユーザーの ID に基づいて基本的な POSIX 権限チェックを実行します。
-
ファイルサーバー上では、Linux ユーザーの UID や GID に関係なく、操作は対応するドメインユーザー ID にマッピングされます。Linux の root ユーザーは管理者権限を持たず、そのドメインユーザーの権限のみを持ちます。chmod、chown、chgrp、getfacl、setfacl などの Linux 権限コマンドは効果がありません。
詳細については、「Linux クライアントで AD ユーザーとして SMB ファイルシステムをマウントして使用する」をご参照ください。
仕組み
File Storage NAS は、Virtual Private Cloud (VPC) またはオンプレミスデータセンターにある AD ドメインコントローラーを使用して、ユーザー管理とファイルシステムのアクセス制御をサポートします。これにより、ハイブリッドクラウド環境のユーザー認証とアクセス制御が統合されます。File Storage NAS の SMB サービスは、オンプレミスまたは Alibaba Cloud にデプロイされているかどうかにかかわらず、AD ドメインコントローラーに対して Kerberos を使用して AD ユーザーを認証します。ユーザーは、ドメインに参加している Windows または Linux サーバーからドメインユーザーとして SMB ファイルシステムに接続し、アクセスできます。ファイルサーバーは、ユーザーのドメイン ID を認識して、ディレクトリレベルおよびファイルレベルのアクセス制御を強制します。
次のプロセスは、SMB ACL を使用した ID 認証とアクセス制御の仕組みの概要です。

-
keytab ファイルを生成します。詳細については、「SMB マウントターゲットを AD ドメインに参加させる」をご参照ください。
-
SMB AD ACL 機能を有効にし、keytab ファイルをアップロードして SMB マウントターゲットを AD ドメインに参加させます。詳細については、「ステップ 2: keytab ファイルのアップロード」をご参照ください。
keytab ファイルがアップロードされると、その情報は File Storage NAS ファイルシステムに保存されます。SMB マウントターゲットは AD ドメインに参加し、AD ユーザーとして SMB ファイルシステムをマウントして使用できるようになります。詳細については、「Windows クライアントで AD ユーザーとして SMB ファイルシステムをマウントして使用する」または「Linux クライアントで AD ユーザーとして SMB ファイルシステムをマウントして使用する」をご参照ください。
-
クライアントからのユーザー認証とアクセス制御。
ユーザーが VPC 内の VM またはオンプレミスデータセンターのアプリケーションから SMB ファイルシステムに接続しようとすると、システムはまず権限グループを使用して接続を検証します。権限グループは、そのルールに基づいてクライアントの接続性とアクセスを制御します。その後、ユーザー認証とアクセス制御は次のように進みます。
-
ファイルシステムへの接続が確立されると、クライアントとサーバーは SMB を介して認証プロトコルをネゴシエートします。
-
ファイルサーバーはファイルシステムの設定をチェックして、Kerberos 認証が有効になっていることを確認します。
-
クライアントは、Alibaba Cloud ファイルシステムサービスにアクセスするために、AD ドメインコントローラー (VPC またはデータセンター内) にリクエストを送信します。
-
AD ドメインコントローラーはユーザーを認証し、ファイルシステムサービスのサービスアカウントキーでユーザー情報を暗号化し、暗号化された情報をクライアントに返します。
-
クライアントは、暗号化されたユーザー情報を SMB セッションセットアップリクエストで SMB ファイルサーバーに送信します。
-
ファイルサーバーは、ファイルシステム用に提供された keytab ファイルを使用してユーザー情報を復号します。
説明このセッション内の後続のすべてのアクセスリクエストは、このユーザーとして承認されます。
-
認証が成功した場合、ファイルサーバーは成功の応答をクライアントに返します。それ以外の場合、ファイルサーバーはセッションセットアップリクエストを拒否します。
-
アプリケーションは、ファイルアクセスリクエスト (読み取り、書き込みなど) をファイルサーバーに送信します。
-
ファイルサーバーは、アクセスの結果をクライアントに返します。
ファイルサーバーはアクセス制御を強制します。セッション内のユーザー情報と、ディレクトリまたはファイルに設定された ACL 権限に基づいて、サーバーはアクセスを許可または拒否します。
-