短い答え

短い答え

ファイルにreadユーザーの一般権限がある場合writeであり、ユーザーのACL権限も持っています。、この場合はどうなりますか?

  • 一般権限のみが適用されますか(したがって、ファイルにはread権限のみがあります)。
  • それともACL権限のみを適用しますか(ファイルにはwrite権限のみが付与されます)?
  • readそれとも両方の権限が適用されますか(したがって、ファイルに権限が付与されますwrite)?

答え1

短い答え

ACLはTraditionalの親セットであるため、両方を持つことはできません(TraditionalはACLの一部であるため)。

もっと長い答えです。

まず試してみましょう。

#> chmod ug-w aab
#> setfacl -m u:me:w aab
#> getfacl aab
# file: aab
# owner: me
# group: me
user::r--
user:me:-w-                #effective:---
group::r--
mask::r--
other::r--

それでは、user:meのACLが無効なのはなぜですか?

これを説明するために、伝統的な権限を見ることができます。

ここにリストされているファイルがある場合

-r---w----  1 me me    0 Feb 21 09:41 abc

それでは読めますが、書くことはできません。なぜこれですか?

OSは最初に私を所有者に関連付けようとし、次にグループ、次に他のすべての人に接続しようとします。私の所有者と私は完璧なペアです。次に、これらの権限を適用します。これにより、私のグループ権限はマージされません。

ACL を使用する場合、追加の権限はグループ権限の一部であるため、所有者は使用できません。

私の考えでは、ACLは同じ方法で解析されます。つまり、自分が属するグループを見つけて権限を適用することです。 (許可なくマージ)。

ユーザーが異なる場合

これ#> setfacl -m u:anotherUser:w aabにより、この権限が(そのユーザーに対して)最初に検出され、適用されたため、権限が適用されます。

関連情報