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


21

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

回答:


15

これは一種の広範なトピックであり、ここでは説明しきれないほどです。SuSE LabsのAndreasGrünbacherがまとめたLinuxホワイトペーパーのPOSIXアクセス制御リストを参照してください。ACLがどのように機能するかを理解できるように、サブジェクトをカバーして分類するという非常に良い仕事をします。

あなたの例

それでは、例を見てみましょう。

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

次に、fileのアクセス権を分類します/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、joeに似たグループもあります。これらの権限は、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

これは、大々的に許可される権限を削減するための強力なメカニズムです。

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

参照資料

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.