ACLおよび既存の一般権限

ACLおよび既存の一般権限

多くの記事を読んでいますが、まだACLを理解していないため、次の質問があります。

  1. ACL以前の権限(0777など)を使用してファイルの所有者、グループなどを変更すると、どのような利点がありますか? (複数のユーザーがファイルに対して異なる権限を持つことができるので、私には1つだけあります)
  2. ACLはどのように実装されますか? inodeデータを使用していますか?
  3. 拡張属性(xattr)間に接続がありますか?
  4. 拡張属性はサポートされていますかVFS?それともFS特定の機能ですか?

これを理解するのに役立ちます。これについての良い記事がありますか?
ありがとう

ベストアンサー1

ACLを使用すると、複数の人とグループに権限を付与できます。たとえば、SAチームとDBAチームがあります。 SAにファイルへの読み取り+書き込みアクセス権を付与しようとしていますが、DBAには読み取りアクセス権しかありません。ファイルにはグループ所有者が1人しかいないため、これを行うのは困難です。しかし、ACLを使用すると簡単です。

ACLの実装はファイルシステムによって異なります。通常、インデックスノードに関連付けられます。例えば

$ echo test > file
$ setfacl -m g:dbus:rw file
$ getfacl file 
# file: file
# owner: sweh
# group: sweh
user::rw-
group::r--
group:dbus:rw-
mask::rw-
other::r--

ここでは、ファイルに異なる権限に設定された2つのグループ権限があることがわかります。

ファイル(異なるファイル名、同じinode)間にハードリンクを作成し、結果を見てみましょう。

$ ln file file2
$ getfacl file2
# file: file2
# owner: sweh
# group: sweh
user::rw-
group::r--
group:dbus:rw-
mask::rw-
other::r--

したがって、ファイル間でハードリンクを作成し、新しいファイル名でACLを使用できます。これは、ACL がファイル名ではなく inode に関連付けられていることを示します。

ACLは拡張属性と同じではありませんが、xattr名前空間に保存できます。 xattr 属性はファイルシステムによって異なります。

おすすめ記事