Possible Duplicate:
How to set default file permissions for all folders/files in a directory?

Say I have default umask, umask1. I would like all files/folders that I create/modify under a specific path


to have a different umask, umask2, and keep using umask1 for everything else. Is there a way to have the shell do this automatically for me? If so, how?

Is there a way to do this for everyone else who belongs to the groupID of /path/to/foo?


You need to use default ACLs.

Note that the syntax is a bit different, and is based on the positive permissions, not the negative permissions mask, e.g. rwxr-x--- would be 750 rather than 027.

For example

setfacl -m d:u::7,g::5,o:0 /path/to/foo


setfacl -m d:u::rwx,g::r-x,o:- /path/to/foo

will make it so that files and directories created under /path/to/foo are 750 = rwxr-x--- by default.

If you already have some subfolders, you'll want to add the -R flag to set their defaults recursively as well.

If you get an Operation not supported error, you probably don't have ACLs enabled on your file system. The correct answer depends on many things, but if you're on Linux using ext2/ext3/ext4, try

sudo mount -o remount,acl <mount point>


sudo tune2fs -o acl <file system>

See also How to set default file permissions for all folders/files in a directory?

| improve this answer | |
  • When I run setfacl -d -m g::rwx /path/to/foo I get Operation not supported (?) – Amelio Vazquez-Reina Nov 30 '12 at 16:51

You can mount the directory with specific permissions and effective umask using bindfs. See http://www.cs.helsinki.fi/u/partel/bindfs_docs/bindfs.1.html.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.