Conflicts between ACLs and umask
Solution 1:
It is a bug with gnu mkdir
: http://savannah.gnu.org/bugs/?19546 There is no way to disable the traditional Unix permissions. Since mkdir
works you could write a shell function that overrides mkdir
. In the shell function look for a -p
in the args and run a series of non-p-using mkdir
s instead.
Many Linux-based systems are now using umask 0002 with user-private groups so this problem doesn't come up.
Solution 2:
It was a bug with gnu mkdir
(#14371), it was fixed in coreutils 8.22.
- affected: Debian Wheezy 7, RHEL/CentOS 5 and 6 are affected (and probably Ubuntu Trusty 14.04)
- not affected: Debian 8 Jessie, RHEL/CentOS 7 (and probably Tbuntu Utopic 14.10)
There are a few workaround.
Workaround #1: wrapper (already suggested by Mark Wagner)
Since mkdir works you could write a shell function that overrides mkdir (or a script /usr/local/bin/mkdir as this is usualy before /bin). That script look for a -p in the args then recursively invoke mkdir without "-p".
Workaround #2: umask 0002
If you can control the script that calls mkdir, you can set the mask before invoking mkdir:
(umask 0002 ; mkdir -p /path/to/dir)
Your other questions:
So I wonder if there is another possibility to solve this problem. It would be perfect to be able to completely disable/ignore the old unix-style permission stuff for a ACL-controlled directory.
No, Permission are required for compatibility, also read Why does chmod(1) on the group affect the ACL mask?
Or disable this "effective ACL" stuff.
No