ウィキペディアのMAC記事の引用:
必須のアクセス制御では、このセキュリティポリシーはセキュリティポリシー管理者によって集中的に制御されます。ユーザーは、ポリシーを上書きしたり、たとえば制限されているファイルへのアクセスを許可したりすることができません。対照的に、サブジェクトがオブジェクトにアクセスする機能も制御する随意アクセス制御(DAC)により、ユーザーはポリシーを決定したり、セキュリティ属性を割り当てたりすることができます。 (ユーザー、グループ、および読み取り/書き込み/実行権限の従来のUnixシステムはDACの例です。)MAC対応システムにより、ポリシー管理者は組織全体のセキュリティポリシーを実装できます。 MACでは(DACとは異なり)、ユーザーはこのポリシーを誤ってまたは意図的に上書きまたは変更することはできません。これにより、セキュリティ管理者は、(原則として)すべてのユーザーに適用されることが保証されている中央ポリシーを定義できます。
私が読んだことから、MACではシステムがセキュリティレベルを定義し、DACでは各ユーザーがセキュリティレベルではなくユーザーIDに基づいてファイルにアクセスするためのアクセス許可を割り当てる責任があります。
Unixでは、ファイルのIDに基づいて特定のユーザーへのアクセスをファイルに割り当てることはできません(ACLではなく、グループのrwx権限のみを考慮します)。昇格されたアクセス許可がないと、ファイルの所有権を別のユーザーに変更することもできません。さらに、可能であっても、アクセスは各ユーザーのIDではなく、「所有権」または「メンバーシップ」(所有者、グループなど)に基づいて評価されます。これは、DACよりもMACモデルに似ています。
では、なぜLinuxファイルシステムのパーミッションモデルはDACモデルと見なされるのでしょうか。
随意アクセス制御システムでは、ソースの所有者が誰がデータにアクセスできるかを決定します。必須のアクセス制御システムでは、管理者が誰がデータにアクセスできるかを決定します。これは通常、ポリシーによって決定されます。たとえば、ABCディレクトリ内のすべてのファイルは、XYZユーザーのみが読み取ることができます。 MACシステムでは、XYZ以外のユーザーはファイルを読み取ることができません。 DACシステムでは、ファイルの所有者は「管理者をねじ込んで、これらのファイルをグローバルに読み取り可能にする」と言うことができます。これがLinuxファイルシステムで行われることであり、デフォルトではDACです。
注:SELinuxを有効にすると、上記の説明は当てはまりません。
達成できる権限の細かさはここでは関係ないと思います。特定のユーザーにアクセス許可を割り当てることができるかどうかは関係ありません。どのユーザーがアクセス許可を変更できるかが重要です。たぶん DAC記事 はこれについてより明確です:
コンピュータセキュリティでは、随意アクセス制御(DAC)は、Trusted Computer System Evaluation Criteria [1]によって定義されたタイプのアクセス制御であり、サブジェクトやグループが属しているグループのIDに基づいてオブジェクトへのアクセスを制限する手段として。特定のアクセス許可を持つサブジェクトが他のサブジェクトに(おそらく間接的に)その許可を渡すことができるという意味で、コントロールは任意です(必須のアクセス制御によって制限されていない限り) "。
(強調鉱山)
MACとDACの主な違いは、DACを使用すると、ファイルに対する特定の権限を持つユーザーがそのファイルの権限を変更できることです。
DACという用語は、多くのシステムが所有者の概念を使用してDACを実装しているためと考えられるコンテキストで、すべてのオブジェクトにオブジェクトへのアクセス許可を制御する所有者がいることを前提としています。ただし、TCSECの定義では所有者について何も述べられていないため、技術的には、DACのTCSECの定義を満たすために、アクセス制御システムに所有者の概念を持たせる必要はありません。
ユーザー(所有者)は、このDAC実装の下で、ポリシーを決定したり、セキュリティ属性を割り当てたりすることができます。簡単な例は、ユーザー、グループ、その他の各3ビットで書き込み、読み取り、実行を表すUnixファイルモードです。 (追加の特性を示す別のビットが前に付加されます)。