On Mon, 16 Aug 2010 13:44 -0500, "Jeremy Olexa" <jolexa at jolexa.net>
wrote:
> On Mon, 16 Aug 2010 13:28:07 -0500 (CDT), Mike Miller
> <mbmiller+l at gmail.com> wrote:
> > I have a highly-related question...
> > 
> > Every user on the system is in his own group, so files for user "bob" are 
> > created by default with owner "bob" and group "bob".  Most users are also 
> > in a group called "staff".  I want to make a shared space for the staff 
> > group where every file and subdirectory created within our staff directory 
> > always has the group "staff" (recursively for the whole tree).  This will 
> > be our shared space.  How can I do that?
> 
> The sgid bit[1]. "chmod g+s <dir>; chgrp staff <dir>" and new files
> will have the staff group set. I suspect that the default umask will
> hinder what you want though. So, you can either: change everyone's
> umask, run a quick and dirty cron, or a fancy inotify script.
> 
Another option is to use an ACL so that any file or directory created in
the tree automatically inherits the needed permissions for the staff
group. Not only are you limited to granting permission to a single group
(staff) but, more generally, to any desired combination of users and/or
groups. (e.g. staff plus user bob who is not part of staff)