Access Control Lists
To set an access control list on a single file or directory is relatively simple, but most often it is required to set acls on all files and folders within a directory structure. In non acl parlance the set froup id setting is used to define that the group id is inherited from a folder to a folder created underneath it. In acls the "default" acl does the same thing. We need to ensure that
To set the default facl on a directory:
setfacl -m user::rwx,group::rwx,other:---,mask:rwx,default:user::rwx,default:group::rwx,default:other:---,default:mask:rwx <Directory name>
This configures the directory to propagate by inheritance any acls added to it for users
To add users to acls in a directory structure with inheritance all of the directories in the folder structure must have a "default acl" set. After cd'ing into the relevant directory run the following
find . -type d -exec setfacl -m user::rwx,group::rwx,other:---,mask:rwx,default:user::rwx,default:group::rwx,default:other:---,default:mask:rwx {} \;
Having now set the default acls on all of the directories in the structure we need to add an entry for a particular user as follows
find . -type d -exec setfacl -m user:my01user:rwx,default:user:my01user:rwx {} \;
Now we need to do the same for files
find . -type f -exec setfacl -m user:my01user:rwx {} \;
Linux facls
setfacl -dm u::rwx,g::rwx,o::r /shared/directory - ensure all newly created files are group writeable