POSIX ACLマスクがどのように再計算されるかを理解する必要があります。マンページを読みました(https://man7.org/linux/man-pages/man1/setfacl.1.html) 以下の説明があります。
The default behavior of setfacl is to recalculate the ACL mask entry, unless a mask entry was
explicitly given. The mask entry is set to the union of all permissions of the owning group, and
all named user and group entries.
はっきり見えますが、見るほど簡単ではありません。グループユーザーと2人のユーザー(学生とjbond)があるとしましょう。ユーザーStudentは、次のACLリストを含むtest.txtファイルを作成しました。
# file: test.txt
# owner: student
# group: users
user::rw-
user:jbond:rw- #effective:r--
group::r--
mask::r--
other::r--
現在、学生は読んで書くことができますが、jbondは読むだけです。その後、chmodを使用してグループ権限を変更しました。
chmod g-r test.txt
ACLのリストは次のようになります。
# file: test.txt
# owner: student
# group: users
user::rw-
user:jbond:rw- #effective:---
group::r-- #effective:---
mask::---
other::r--
私の質問は、このマスクがどうなったのでしょうか---
?マニュアルページに記載されている結合操作を実行する方法。論理ORと同じですか?では、段階的に計算する方法は?本当に理解する必要があります。
システム情報:SUSEを開く
答え1
走っていないのでsetfacl
マスクを修理できません。実行しましたが、chmod
ACLを知りませんでした。今実行すると、setfacl -m user:jbond:rw test.txt
マスクも変更されることがわかります。
setfacl -m group::xyz
(ACLマスクの場合はマスクを変更しますが、前者はマスクが属するグループの実際の権限を変更するため、ACLマスクの場合とは異なります。)chmod g=xyz