私はこのUnixの動作を理解しようとしています(たまたまUbuntu 11.10でテストしています)。
$ touch foo
$ setfacl -m u:nobody:rwx foo
$ getfacl foo
# file: foo
# owner: michael
# group: michael
user::rw-
user:nobody:rwx
group::rw-
mask::rwx
other::r--
$ chmod g-rw foo
$ getfacl foo
# file: foo
# owner: michael
# group: michael
user::rw-
user:nobody:rwx #effective:--x
group::rw- #effective:---
mask::--x
other::r--
chmod(1)コマンドがACLマスクを更新したことに注意してください。なぜこれが起こるのですか?
SunOSのマニュアルページは言うべき、以下があります。
chmod(1)コマンドを使用して、ACLエントリを持つファイルのファイルグループ所有者のアクセス許可を変更すると、ファイルグループ所有者のアクセス許可とACLマスクの両方が新しいアクセス許可に変更されます。新しいACLマスクのアクセス許可は、ファイルにACLエントリを持つ追加のユーザーおよびグループの有効なアクセス許可を変更する可能性があることに注意してください。
chmod(1)にこの動作がなければ便利だからです。なぜそれが何をするのかを理解することによって、ファイルシステムのパーミッションをどのように設定するかをより良く設計できることを願っています。