Automatically make shared files writable for others
For any newly created file or folder, Mac OS X's default permissions structure automatically assigns read+write permission to the creator, and read only access to all others.
But this can be troublesome when one wants to consistently give write permission, for many files, to another user or group of users. It must be done manually for every new file. This makes it especially problematic to effectively share iPhoto and iTunes libraries between multiple user accounts.
Fortunately, there is a way to automate giving recursive group write permission to a folder by using Access Control Lists (ACLs).
First you need to create a new empty folder in which to store all of your shared files. A good place to store it is inside the /Users/Shared folder. Call it something like /Users/Shared/sharedstuff.
Tiger (10.4.x) users must enter the next line into Terminal to enable ACLs on the boot volume. Leopard systems already have ACLs enabled, so Leopard (10.5.x) users can skip to the next step.
sudo fsaclctl -p / -e (hit return, enter password when prompted.)
(All users) Then paste in all of this, replacing username with the short user name of one of the users to be given access:
sudo chmod +a "username allow delete,chown,list,search,add_file,\
add_subdirectory,delete_child,file_inherit,directory_inherit" \
/Users/Shared/sharedstuff
(hit return, enter password when prompted)
Repeat that last step, replacing username with the short name of another user to be given access.
Alternatively, if a custom group is set up, replace username with the name of the group.
When you are done, it is all set up. Any items that are created or copied to that folder will automatically be read+write for all of the users whom you specified.
Please note that if you have any pre-existing files elsewhere on the boot volume, they won't inherit the ACL settings if they are simply moved to the sharefolder. They must be copied or newly created there. Holding down the command key when dragging files there from another location should ensure that they are copied.