Próbuję zrozumieć to zachowanie w systemie Unix (testowane na 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--
Zauważ, że komenda chmod (1) zaktualizowała maskę ACL. Dlaczego to się dzieje?
Strona SunOS ma następujące zdanie:
Jeśli użyjesz komendy chmod (1) do zmiany uprawnień właściciela grupy plików w pliku z wpisami ACL, zarówno uprawnienia właściciela grupy plików, jak i maska ACL zostaną zmienione na nowe uprawnienia. Należy pamiętać, że nowe uprawnienia do maski ACL mogą zmienić efektywne uprawnienia dla dodatkowych użytkowników i grup, które mają wpisy ACL w pliku.
Pytam, ponieważ byłoby dla mnie wygodne, gdyby chmod (1) nie miał takiego zachowania. Mam nadzieję, że rozumiejąc, dlaczego robi to, co robi, mogę lepiej zaprojektować sposób konfigurowania uprawnień systemu plików.