LinuxファイルセキュリティにおけるDAC、ACL、およびMACのさまざまな役割について、説明/確認/詳細が必要です。
ドキュメントからいくつかの調査を行った後、これは私のスタックの理解です:
setfacl
、getfacl
)がオブジェクトへのアクセスを明示的に許可または拒否する場合、それ以上の処理は必要ありません。何か不足していますか?これがnotである状況はありますか?
プロセスがファイルに対して操作を実行すると、Linuxカーネルは次の順序でチェックを実行します。
Discretionary Access Control(DAC) またはユーザーが指定したアクセス制御。これには、従来のUNIXスタイルのアクセス許可チェックと POSIXアクセスコントロールリスト(ACL) の両方が含まれます。従来のUNIXチェックでは、設定されているモード(読み取り/書き込み/ eXecute)に関して、現在のプロセスのUIDおよびGIDと、アクセス中のファイルのUIDおよびGIDを比較します。アクセス制御リストは、従来のUNIXチェックを拡張して、権限制御に関するオプションを追加できるようにします。
必須アクセス制御(MAC) またはポリシーベースのアクセス制御。これは Linux Security Modules(LSM) を使用して実装されています。これは、実際のモジュールではなくなりました(以前は使用されていましたが、削除されました)。これらは、従来のUNIXスタイルのセキュリティチェック以外のモデルに基づく追加チェックを可能にします。これらのモデルはすべて、どのコンテキストでどのプロセスにどのような種類の操作が許可されるかを説明するポリシーに基づいています。
オンラインへのリンクで私の回答をバックアップするためのiノードアクセス(ファイルアクセスを含む)の例を以下に示します Linux相互参照 。 「function_name
(filename:line)」は、Linuxカーネルの3.14バージョン用です。
関数inode_permission
( fs/namei.c:449 )は、最初にファイルシステム自体の読み取り許可をチェックします(sb_permission
in fs/namei.c:425 )、次に__inode_permission
( fs/namei.c:394 )を呼び出して、読み取り/書き込み/実行の権限とdo_inode_permission
( fs/namei.c:368 )(DAC)、次にsecurity_inode_permission
のLSM関連の権限(MAC)( security/security.c:55 )。
この順序(DAC、MAC)の例外は1つのみでした。これはmmapチェック用です。しかし、これはLinuxカーネルの3.15バージョンで修正されました( 関連するコミット )。
DAC
== Discretionary Access Control
、 http://en.wikipedia.org/wiki/Discretionary_access_controlMAC
== Mandatory Access Control
、 http://en.wikipedia.org/wiki/Mandatory_access_controlACL
== Access Control List
、 http://en.wikipedia.org/wiki/Access_control_list
ACL
は、制御方法DAC
またはMAC
によって適用されるコントロールを指定します。 MAC
は明示的で集中管理されており、明示的な権限がない限り、ユーザーはオブジェクトに権限を付与できません。DAC
を使用すると、アクセスできるオブジェクトへのアクセスを他のユーザーに付与できます。
MAC
ACL
sは常に最初にリクエストに適用され、アクセスが拒否された場合は処理が停止します。アクセスが許可されている場合はDAC
ACL
sが適用され、アクセスが拒否された場合は処理が停止します。 MAC
とDAC
ACL
sの両方によってアクセスが許可されている場合にのみ、ユーザーはリクエストしたオブジェクトにアクセスできます。
SELinux
はLinux用のMAC
の実装です(他にもあります)。一方、従来のrwx
ファイルの権限は、所有するユーザーおよびグループと組み合わせて完全なDAC
ACL
を形成します。 SELinux
'ポリシー'は基本的にMAC
ACL
です。
誤解して申し訳ありませんが、私はここでの答えのいくつか可能性がありますが間違っていると思います。 Fedoraの直接 http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-SELinux_Contexts_Labeling_Files.html :
SELinuxポリシールールは、DACルールの後にチェックされます。 DACルールが最初にアクセスを拒否する場合、SELinuxポリシールールは使用されません。