web-dev-qa-db-ja.com

ACL権限はどのように処理され、どのような順序で特定のユーザーアクションに適用されますか?

CentOS 6.4

ファイルシステムACLルールの処理方法とACLルールの適用順序をよりよく理解しようとしています。

たとえば、ユーザーbobとjoeがsalesというグループに属しているとします。また、次の詳細が記載されたセールスドキュメントがあるとします。

[root@Maui ~]# 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は問題のユーザーにとって最も具体的なルールに基づいてアクセスを強制しますか?または、おそらく最も制限的で適用可能なルールが優先されますか?

21
Mike B

これは一種の広範なトピックであり、ここで説明するには少なすぎます。 SuSE LabsのAndreasGrünbacherがまとめた Linux上のPOSIXアクセスコントロールリスト ホワイトペーパーを紹介します。 ACLがどのように機能するかを理解できるように、件名をカバーして分解するというかなり良い仕事をします。

あなたの例

次に、例を見て、分解してみましょう。

  • グループ(販売)
  • 販売グループのメンバー(ボブ、ジョー)

次に、ファイル/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

これは、ユーザーbobrwを持っているのに対し、ユーザーjoerwxを持っていることを示しています。 joeに似たrwxを持つグループもあります。これらの権限は、ls -lの出力のユーザー列に3人の所有者(jane、bob、およびjoe)と2つのグループ(経営幹部および営業)がいるかのようです。 ACLであること以外は区別されません。

最後にmask行:

mask::rwx

この場合、何もマスキングしておらず、広く開いています。したがって、ユーザーbobとjoeが次の行を持っているとします。

user:bob:rw-
user:joe:rwx

次に、それらは有効な権限です。マスクが次のようだった場合:

mask::r-x

次に、それらの有効な権限は次のようになります。

user:bob:rw-    # effective:r--
user:joe:rwx    # effective:r-x

これは、大まかに付与されるアクセス許可を削減するための強力なメカニズムです。

注:ファイル所有者およびその他の権限は、有効な権限マスクの影響を受けません。他のすべてのエントリは!そのため、マスクに関しては、ACLのアクセス許可は、従来のUnixのアクセス許可と比較すると2番目のクラスの市民です。

参考文献

15
slm