It isn't difficult, it's just not practical and unnecessary in many cases
Let me explain:
Say you have a directory called "X" under your root directory "/", so "/X" and it's owned by the group to which your 4 users belong (see chown/chgrp/chmod). Let's assume that this group is called "theGroup".
Let's also assume that all users have access to the directory and that group permission says "read-write".
Directory permissions, in general, mean the following (which is slightly different from file permissions):
* read = read the contents of the directory
* write = add/move/delete files in the directory. Note also that "move" implies "rename".
* execute = possibility to search "through" the directory, ie to access the files in the directory, to go into subdirectories, etc.
Hence, in your case, you'll need read/write/execute permission for "theGroup" on /X.
The problem you were having is that, whenever one of your users creates a file in the directory, the other users may not have sufficient file permissions to use that file.
This problem can obviously be fixed by changing the file permissions. However, "chmod"ing the file isn't the only option.
Any of the other users can actually use "mv" to rename the file and thus becomes it's owner. In doing so, he/she can gain access to the file.
So, by using the directory permissions, you can still obtain file access, regardless of file permissions.
But this is still somewhat "unpractical".
Here are a few tips to make things easier:
-put the setGID permission bit on the directory "X". This will make any newly created files in the directory owned by the group "theGroup".
-default file permissions, used when a user creates a file and doesn't set the permissions explicitly (ie via chmod), are governed by umask settings. You can play around with these settings to make the default file permissions allow read/write access for the group, for instance. This will make most of the files accessible to the entire group.
The "lazy" solution, for instance doing "chmod 770 /X/*" or "chmod 777 /X/*" will of course also work, but is a questionable approach. Think about, for instance, what happens if 2 users are working on the same system at the same time. User A will create a file and continues to work without logging out. Hence, your chmod will not get run automatically. User B, who wants to access the file created by A in /X, thus may not have access until A logs out...
If you really want to force this, you could put the "chmod" command in a cron job, which executes for instance every 5 minutes. But needless to say, this may slow down your system a little.
There are more advanced solutions, like mount options, too, but I don't want to go into too much detail.