Sto cercando di capire questo comportamento Unix (che mi capita di provare su 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--
Si noti che il comando chmod (1) ha aggiornato la maschera ACL. Perché succede?
La manpage di SunOS ha il seguente da dire:
Se si utilizza il comando chmod (1) per modificare le autorizzazioni del proprietario del gruppo di file su un file con voci ACL, sia le autorizzazioni del proprietario del gruppo di file sia la maschera ACL vengono cambiate con le nuove autorizzazioni. Tenere presente che le nuove autorizzazioni maschera ACL possono modificare le autorizzazioni effettive per utenti e gruppi aggiuntivi che dispongono di voci ACL nel file.
Chiedo perché sarebbe conveniente per me se chmod (1) non avesse questo comportamento. Spero che capendo perché fa quello che fa, posso progettare meglio come impostare i permessi del filesystem.