Linuxファイルのセキュリティでは、DAC、ACL、およびMACが実行するさまざまな役割の説明/確認/詳細が必要です。
文書を調査した結果、スタックの私の理解は次のとおりです。
- SELinuxでは、ファイルオブジェクトにアクセスできる必要があります。
- ファイルのACL(ACLインストールなど
setfacl
)getfacl
がオブジェクトへのアクセスを明示的に許可/拒否する場合、追加の処理は不要です。 - それ以外の場合は、ファイルの権限(rwxrwxrwx DACモデル)によって異なります。
私は何を逃したことがありませんか?これは本当ですか?いいえケース?
答え1
プロセスがファイルに対してアクションを実行すると、Linuxカーネルは次の順序でチェックを実行します。
任意アクセス制御(DAC)またはカスタムアクセス制御。これには、古典的なUNIXスタイルの権限検証が含まれます。POSIXアクセス制御リスト(ACL)。既存のUNIXチェックは、現在のプロセスUIDとGIDをアクセスしているファイルのUIDとGIDと比較して、どのモード(読み取り/書き込み/実行)が設定されているかを確認します。アクセス制御リストは既存のUNIXチェックを拡張し、より多くの権限制御オプションを受け入れます。
強制アクセス制御(MAC)またはポリシーベースのアクセス制御。これは以下を使用して達成される。Linuxセキュリティモジュール(LSM)これは実際のモジュールではありません(以前はありましたが削除されました)。これは、既存のUNIXスタイルのセキュリティチェック以外のモデルに基づく追加のチェックをサポートします。これらのすべてのモデルは、どのプロセスがどのコンテキストでどのタイプの操作を実行できるかを説明するポリシーに基づいています。
以下は、私の答えを裏付けるオンラインリンクを含むinodeアクセス(ファイルアクセスを含む)の例です。Linuxの相互参照。与えられた「(filename:line)」はfunction_name
Linuxカーネルバージョン3.14用です。
機能inode_permission
(FS/名前ic:449)まず、ファイルシステム自体に対する読み取り権限を確認しますsb_permission
(FS/名前ic:425)、その後__inode_permission
(FS/名前ic:394)do_inode_permission
inodeで読み取り/書き込み/実行権限とPOSIX ACLを確認します(fs/namei.c:368)(DAC)、その後security_inode_permission
(セキュリティ/安全.c:550)。
当時は一つこの順序の例外(DACの次のMAC):mmapチェックに使用されます。しかし、この問題はLinuxカーネル3.15バージョンで修正されました(関連提出物)。
答え2
デジタル - アナログコンバータ=ランダムアクセス制御
りんご=必須アクセス制御
前方十字靭帯=アクセス制御リスト
ACLは、制御方法(DACまたはMAC)を介して適用される制御を指定します。 MACは明示的かつ集中管理され、ユーザーが明示的な権限を持たない限りオブジェクトに権限を付与することはできませんが、DACはユーザーが他のユーザーにアクセス権を持つオブジェクトへのアクセス権を付与できます。
MAC ACL は常に要求に最初に適用され、アクセスが拒否されると処理が停止します。アクセスが許可されている場合はDAC ACLが適用され、アクセスが拒否された場合は処理停止が再適用されます。ユーザーは、MAC と DAC ACL の両方がアクセスを許可した場合にのみ、要求されたオブジェクトにアクセスできます。
SELinux は Linux の MAC 実装であり、既存のrwx
ファイル権限が属するユーザおよびグループと組み合わせて、完全な DAC ACL を形成します。 SELinuxの「ポリシー」は本質的にMAC ACLです。
setfacl
ファイルとディレクトリのACLを複数のユーザーまたはグループに割り当てることができるように、デフォルトのファイルシステムACLが拡張されました。これもDAC実装なので、SELinux MAC ACLの後に適用されます。
答え3
ちょっと浮かんですみません。ここにいくつかの答えがあるようです。可能不正確です。 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 ポリシールールは使用されません。