As listas de controle de acesso (ACL) fornecem um mecanismo refinado para controlar o acesso a um arquivo / diretório. Eles não mudam nem definem a propriedade.
O valor default
define qual ACL um novo arquivo criado dentro desse diretório deve "herdar". Estes parecem funcionar para /srv/www
, porque o seu novo arquivo criado test.txt
obtém alguma ACL (observe o +
na listagem de diretório).
O essencial para atingir seu objetivo é dado na resposta do SF linkada por @Darius:
chmod ug+s /srv/www
que define o set-user-ID e set-group-ID bit. O manual de informações do coreutils explica este mecanismo:
27.5 Directories and the Set-User-ID and Set-Group-ID Bits
On most systems, if a directory's set-group-ID bit is set, newly created subfiles inherit the same group as the directory, and newly created subdirectories inherit the set-group-ID bit of the parent directory. On a few systems, a directory's set-user-ID bit has a similar effect on the ownership of new subfiles and the set-user-ID bits of new subdirectories. (...)
Por favor, note a restrição "em alguns sistemas" para o bit set-user-ID . De fato, nem no meu sistema Debian nem no meu openSuSE a herança do dono funciona, apenas o grupo é propagado. De acordo com Wikipedia , isso é verdadeiro para todos sistemas linux:
The setuid permission set on a directory is ignored on UNIX and Linux systems.[4] FreeBSD can be configured to interpret it analogously to setgid, namely, to force all files and sub-directories to be owned by the top directory owner.[5]