Você pode controlar os bits de permissão atribuídos com umask
e o grupo fazendo o diretório setgid para G
.
$ umask 002 # allow group write; everyone must do this
$ chgrp G . # set directory group to G
$ chmod g+s . # files created in directory will be in group G
Observe que você precisa fazer o chgrp
/ chmod
para cada subdiretório; ele não se propaga automaticamente (ou seja, nem os diretórios existentes ou criados posteriormente em um diretório setgid serão setgid , embora o último esteja no grupo G
).
Observe também que umask
é um atributo de processo e se aplica a todos os arquivos criados por esse processo e seus filhos (que herdam o umask
em vigor em seu pai em fork()
time). Os usuários podem precisar definir isso em ~/.profile
e talvez precisem observar coisas não relacionadas ao seu diretório que precisam de permissões diferentes. Os módulos podem ser úteis se você precisar de configurações diferentes ao fazer coisas diferentes.
Você pode controlar as coisas um pouco melhor se puder usar ACLs POSIX; deve ser possível especificar uma máscara de permissões e um grupo e fazer com que eles se propaguem de maneira sensata. O suporte para ACLs POSIX é um pouco variável, no entanto.