CentOS 6.4
ファイルシステムのACLルールがどのように処理され、ACLルールがどのような順序で適用されるかをよりよく理解しようとしています。
たとえば、ユーザーのbobとjoeがsalesというグループに属しているとします。また、次の詳細が記載された販売ドキュメントがあるとします。
[[email protected] ~]# getfacl /home/foo/docs/foo.txt
getfacl: Removing leading '/' from absolute path names
# file: home/foo/docs/foo.txt
# owner: jane
# group: executives
user:: r--
user:bob:rw-
user:joe:rwx
group:sales:rwx
group::r--
mask::rwx
other::---
私の質問は、このような例ではアクセス許可はどのように処理され、どのアクセス権限が優先されるのかということです。
トップダウン検索だけがあり、最初に一致するルールが適用されますか?
または、Linuxは、問題のユーザーに最も具体的なルールに基づいてアクセスを強制しますか?または、おそらく最も制限的で適用可能なルールが優先されますか?
承認された回答:
これは一種の幅広いトピックであり、ここで取り上げるには少し多すぎます。 SuSELabsのAndreasGrünbacherがまとめたLinuxホワイトペーパーのPOSIXアクセス制御リストを紹介します。 ACLがどのように機能するかを理解できるように、主題をカバーして分解するのはかなり良い仕事です。
あなたの例
それでは、あなたの例を見て、それを分解してみましょう。
- グループ(販売)
- 販売グループのメンバー(bob、joe)
次に、ファイル/home/foo/docs/foo.txt
の権限を分類してみましょう。 。 ACLは、ほとんどの人がUnixで精通している必要があるのと同じ権限、主にユーザー、グループ、およびその他のビットもカプセル化します。それでは、最初にそれらを引き出しましょう。
user:: r--
group::r--
other::---
これらは通常、ls -l
では次のようになります。 :
$ ls -l /home/foo/docs/foo.txt
-r--r----- 1 jane executives 24041 Sep 17 15:09 /home/foo/docs/foo.txt
これらのACL行を使用して、ファイルの所有者とグループが何であるかを確認できます。
# owner: jane
# group: executives
さて、ACLの核心に迫ります:
user:bob:rw-
user:joe:rwx
group:sales:rwx
これは、そのユーザーがbob
であることを示しています rw
があります 、ユーザーjoe
rwx
があります 。 rwx
を持つグループもあります ジョーに似ています。これらの権限は、ls -l
のユーザー列のようです。 出力には、3人の所有者(jane、bob、およびjoe)と2つのグループ(エグゼクティブおよびセールス)が含まれていました。 ACL以外の区別はありません。
最後に、mask
行:
mask::rwx
この場合、私たちは何もマスキングしていません、それは広く開かれています。したがって、ユーザーがボブとジョーに次の行がある場合:
user:bob:rw-
user:joe:rwx
次に、それらは有効な権限です。マスクが次のような場合:
mask::r-x
その場合、有効な権限は次のようになります。
user:bob:rw- # effective:r--
user:joe:rwx # effective:r-x
これは、大規模な方法で付与される権限を削減するための強力なメカニズムです。
関連:Debian –完全なWebページコンテンツをカールさせる方法は?注: ファイルの所有者およびその他のアクセス許可は、有効な権利マスクの影響を受けません。他のすべてのエントリは!したがって、マスクに関しては、ACLのアクセス許可は、従来のUnixのアクセス許可と比較すると、二流の市民です。
参考資料
- getfacl(1)–Linuxのマニュアルページ
- LinuxホワイトペーパーのPOSIXアクセス制御リスト