はい、ACL:を使用すると、さまざまなユーザーまたはグループにさまざまな権限を自由に設定できます。S(として示さ:IIRC通常のグループの権限は、グループとユーザーはACLを通じて持つことができるという一連の権限を制限mask
でgetfacl
)、しかし、setfacl
あなたが権限を追加する場合、それに対処する必要があります。
ただし、場合によっては、一連の権限が意味をなしているかどうかを尋ねる必要があります。
これらの望ましい権限を持つ3人のユーザーがい
ます。...-
user1 rwx
-user2 rw_
-user3 r__
これをACL:sで、または(おおよそ)user1をファイルの所有者にし、user2をグループのメンバーにして、user3を含む他のユーザーに読み取りアクセスを許可することで、通常のUnix権限で実装できます。ただし、(ディレクトリへのアクセス権を持つ)全員が読み取りアクセス権も持っています。
これらの権限の意味を考えてみましょう。読み取り可能なユーザーと、読み取りと書き込みが可能な別のユーザーがいます。それは完全に普通です。これらのどちらにもファイルを実行するためのアクセス権はありませんが、3番目のユーザーもそれを実行できるはずです。
それは私の心にはあまり意味がありません。元のファイルを実行するためのアクセス権がなくても、ファイルを読み取り、コピー(*)を作成し、実行可能ファイルとしてマークして実行できるユーザーであれば誰でもアクセスできます。実行可能ファイルがsuidを介して昇格された特権を持っている場合は、一部のユーザーだけが実行アクセス権を持つことが理にかなっている唯一の状況です。しかし、その場合は、ファイルへの書き込みアクセス権を持つ他のユーザーも必要ありません。
同じ意味で、user4 with -wx
とuser5 with --x
は私には意味がありません。追加のみを許可する可能性がある場合、書き込み専用アクセスは理にかなっている可能性がありますが、アクセス許可システムはきめ細かくありません。
(*どこにも書き込めない場合を除く)
x
ただし、ビットの奇妙な要件を削除すると、user1とuser2に書き込みアクセス権があり、user3に読み取りアクセス権が必要なファイルが残ります。1つのライターと複数のリーダーは、従来のモデルでは簡単ですが、この場合は、ファイルのアクセス許可とそれを含むディレクトリのアクセス許可を組み合わせるためのトリックが必要になります。幸い、多くの場合、より多くの権限を持つ1人のユーザーで十分です。
実行ビットの要件がない場合、これはACL:sを使用するケースのように見えます。しかし、それを使うと、この特定の例は私にはかなり入り組んでいるように見えます。